Хорошо, это немного странно, но это в основном то, что мне нужно сделать. У меня есть элемент управления WPF, связанный с объектом Document. Объект Document имеет свойство Pages. Поэтому в моей модели ViewModel у меня есть свойство CurrentDocument и свойство CurrentPage.WPF: Bind DisplayMemberPath в поле со списком к элементу
Теперь у меня есть поле со списком, которое я связал с свойством CurrentDocument.Pages и обновляет свойство CurrentPage.
<ComboBox ItemsSource="{Binding CurrentDocument.Pages}"
DisplayMemberPath="???"
SelectedItem="{Binding CurrentPage, Mode=TwoWay}">
</ComboBox>
Со мной до сих пор? Все это хорошо, за исключением, что мне нужно DisplayMemberPath, чтобы показать «Страница 1», «Страница 2» и т.д .....
Я попытался создать конвертер, такие как это:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string pageNumber = "Page {0}";
return string.Format(pageNumber, value);
}
И пытался связать DisplayMemberPath к ней, как это:
DisplayMemberPath="{Binding RelativeSource={RelativeSource Self}, Path=Index, Converter={StaticResource pgTitleConv}}"
Но это все равно не будет отображаться в тексте комбинированного окна !!!
Нет свойства «Index», но я не знаю, как это сделать ... Как получить доступ к индексу элемента, связанного с привязкой к ... ??????
работал как шарм для моей ситуации. – JohnathanKong
+1 Отличный трюк! – Olwaro
Работает, но с использованием преобразователя влияет на производительность. Я применил выше, чтобы использовать функцию привязки StringFormat. например. –
Darren