OK, to jest trochę dziwne, ale to jest w zasadzie to, co muszę zrobić. Mam kontrolkę WPF, która jest powiązana z obiektem dokumentu. Obiekt Document ma właściwość Strony. Tak więc w moim ViewModelu mam właściwość CurrentDocument i właściwość CurrentPage.WPF: Powiąż DisplayMemberPath w combobox z pozycją
Teraz mam combobox, który związałem z właściwością CurrentDocument.Pages i aktualizuję właściwość CurrentPage.
<ComboBox ItemsSource="{Binding CurrentDocument.Pages}"
DisplayMemberPath="???"
SelectedItem="{Binding CurrentPage, Mode=TwoWay}">
</ComboBox>
Ze mną do tej pory? Wszystko to jest w porządku, poza tym, że muszę DisplayMemberPath aby wyświetlić "Page 1", "Page 2", itd .....
Próbowałem tworzenia konwerter taki jak ten:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string pageNumber = "Page {0}";
return string.Format(pageNumber, value);
}
I próbował związać DisplayMemberPath z tym tak:
DisplayMemberPath="{Binding RelativeSource={RelativeSource Self}, Path=Index, Converter={StaticResource pgTitleConv}}"
Ale nadal nie pojawił się w tekście pola kombi !!!
Nie ma właściwości "Index", ale nie wiem jak to zrobić ... Jak uzyskać dostęp do indeksu elementu, który jest wiążący combobox ... ??????
pracował jak czar o mojej sytuacji. – JohnathanKong
+1 Świetna sztuczka! – Olwaro
Działa, ale używanie konwertera wpływa na wydajność. Dostosowałem się powyżej, aby użyć wiążącej funkcji StringFormat. na przykład. –
Darren