3
我有一個ComboBox
,它列出了下面顯示的聯繫方法。 ComboBox
顯示正確的值,因此ItemSource
綁定正在工作。在WPF XPath表達式中篩選
我想要存檔的是在應用程序啓動時顯示選定的聯繫方式。我試圖將選定的值綁定到ComboBox.Text
屬性,但我無法弄清楚如何設置過濾器。
這是我的輸入數據:
<Contact ShowsInterest="true">
<Name>Tester</Name>
<Lastname>Test</Lastname>
<ContactMethods>
<ContactMethod Selected="False">Phone</ContactMethod>
<ContactMethod Selected="False">Email</ContactMethod>
<ContactMethod Selected="True">Letter</ContactMethod>
<ContactMethod Selected="False">Mobile</ContactMethod>
</ContactMethods>
</Contact>
這是我ComboBox
:
<ComboBox Name="combobox1"
ItemsSource="{Binding XPath=Contact/ContactMethods//*}"
Width="100" Height="25">
<ComboBox.Text>
<Binding XPath="Contact/ContactMethods//*[@Selected='true']"/>
</ComboBox.Text>
</ComboBox>
XPath表達式應該做到以下幾點:顯示元素下,在選擇時等於真正聯繫/ ContactMethods /。
編輯: 即使直接設置文本屬性將不起作用。
<ComboBox Name="combobox1"
ItemsSource="{Binding XPath=Contact/ContactMethods//*}"
Width="100" Height="25">
<ComboBox.Text>
Phone
</ComboBox.Text>
</ComboBox>
我想我必須使用SelectedValue
物業:
<ComboBox Name="combobox1"
ItemsSource="{Binding XPath=Contact/ContactMethods//*}"
Width="100" Height="25">
<ComboBox.SelectedValue>
Phone
</ComboBox.SelectedValue>
</ComboBox>
EDIT2: 這是可行的解決方案,這要歸功於MikroDel
<ComboBox Name="combobox1"
ItemsSource="{Binding XPath=Contact/ContactMethods//*}"
Width="100" Height="25">
<ComboBox.SelectedValue>
<Binding XPath="Contact/ContactMethods/ContactMethod[@Selected='True']"/>
</ComboBox.SelectedValue>
</ComboBox>
+1您注意到的好點:-) –
@HosseinNarimaniRad謝謝) – MikroDel