ComboBox を XDocument から XElement にバインドしたいと考えています。twoway-Binding は Textbox では機能しますが、ComboBox では機能しません。
xaml:
<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 Binding の何が問題になっていますか?
ありがとう