Ok, questo è un po 'strano ma questo è fondamentalmente ciò che devo fare. Ho un controllo WPF associato a un oggetto Document. L'oggetto Document ha una proprietà Pages. Quindi nel mio ViewModel, ho una proprietà CurrentDocument e una proprietà CurrentPage.WPF: associare DisplayMemberPath in una casella combinata all'elemento
Ora, ho una casella combinata che ho associato alla proprietà CurrentDocument.Pages e aggiorna la proprietà CurrentPage.
<ComboBox ItemsSource="{Binding CurrentDocument.Pages}"
DisplayMemberPath="???"
SelectedItem="{Binding CurrentPage, Mode=TwoWay}">
</ComboBox>
Con me finora? Tutto questo è bene, tranne che ho bisogno del DisplayMemberPath per mostrare "Page 1", "Pagina 2", ecc .....
Ho cercato di creare un convertitore come questo:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string pageNumber = "Page {0}";
return string.Format(pageNumber, value);
}
E cercato di legare DisplayMemberPath ad esso in questo modo:
DisplayMemberPath="{Binding RelativeSource={RelativeSource Self}, Path=Index, Converter={StaticResource pgTitleConv}}"
Ma ancora non si presentava nel testo casella combinata !!!
Non esiste una proprietà "Indice" ma non so come farlo ... Come posso accedere all'indice dell'articolo che la casella combinata è vincolante per ... ??????
funzionato come un fascino per la mia situazione. – JohnathanKong
+1 Grande trucco! – Olwaro
Funziona ma l'utilizzo di un convertitore influisce sulle prestazioni. Ho adattato in precedenza per utilizzare la funzione StringFormat di associazione. per esempio. –
Darren