我想将 ComboBox 绑定到 XDocument 中的 XElement。双向绑定适用于文本框,但不适用于组合框:
xml:
<Window x:Class="ComboBoxBindingTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ComboBox Height="23" HorizontalAlignment="Left" Margin="31,38,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120" SelectedValue="{Binding Path=Element[step].Element[schema].Value}" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="31,117,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" Text="{Binding Path=Element[step].Element[schema].Value}"/>
<TextBox Height="23" HorizontalAlignment="Left" Margin="31,214,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" />
</Grid>
</Window>
CS:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
comboBox1.Items.Add(new Tuple<string, string>("1", "Wert 1"));
comboBox1.Items.Add(new Tuple<string, string>("2", "Wert 2"));
comboBox1.Items.Add(new Tuple<string, string>("3", "Wert 3"));
comboBox1.Items.Add(new Tuple<string, string>("4", "Wert 4"));
comboBox1.Items.Add(new Tuple<string, string>("5", "Wert 5"));
comboBox1.Items.Add(new Tuple<string, string>("6", "Wert 6"));
comboBox1.Items.Add(new Tuple<string, string>("7", "Wert 7"));
comboBox1.SelectedValuePath = "Item1";
comboBox1.DisplayMemberPath = "Item2";
XDocument doc = XDocument.Parse("<dir><step><schema>2</schema></step></dir>");
DataContext = doc.Element("dir");
}
}
将文本框中的文本更改为从 1 到 7 的另一个数字会导致组合框更新,但反之则不然。更改组合框选择时,XML 中的值不会更改。
ComboBox 绑定有什么问题?
谢谢