Почему привязка данных TwoWay не работает над текстовым свойством combobx в .net 4.0 (он работает в .net 3.5)?Почему привязка данных TwoWay не работает с текстовым свойством combobx в .net 4.0?
Мой код:
У меня есть файл XML, как это:
<xml>
<combobox option="" obs="tralala">
<option value="here" />
<option value="there" />
</combobox>
<combobox option="blue" obs="">
<option value="one" />
<option value="two" />
<option value="three" />
</combobox>
</xml>
и у меня есть ListItem
контроль подобное:
<ListBox DataContext="{Binding UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding UpdateSourceTrigger=PropertyChanged}"
IsSynchronizedWithCurrentItem="True">
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel LastChildFill="True">
<ComboBox MinWidth="75" IsEditable="True"
IsReadOnly="False" DockPanel.Dock="Left"
DataContext="{Binding Path=Element[combobox ]}"
IsSynchronizedWithCurrentItem="False"
ItemsSource="{Binding Path=Elements[option], UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Attribute[value].Value"
Text="{Binding Path=Attribute[option].Value, UpdateSourceTrigger=PropertyChanged}"
/>
<TextBox MinWidth="150" AcceptsReturn="False"
AcceptsTab="False" TextWrapping="NoWrap"
Text="{Binding Path=Attribute[obs].Value, UpdateSourceTrigger=PropertyChanged}" />
</DockPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Вот код позади:
XDocument xdXml;
public MyWindow()
{
xdXml = XDocument.Load(@"C:\file.xml");
InitializeComponent();
DataContext = xdXml;
xdXml.Changed += new EventHandler<XObjectChangeEventArgs>(XdXml_Changed);
}
private void XdXml_Changed(object sender, XObjectChangeEventArgs e)
{
xdXml.Save(@"C:\fichier.xml");
}
я так потому, что я могу иметь ComboBox
с автозаполнением с дифферентом на заказ вариантом для каждого, но я могу писать то, что я хочу, и результат в параметре атрибута элемента <combobox>
Он отлично работает если я нацелен на .net 3.5, но только привязку текстового поля, если я нацелен .net 4.0
Почему? Что мне делать?
Спасибо вам за помощь за помощь!
Я не могу заставить это работать. Возможно ли исправить ваш образец кода? Создайте новое приложение WPF, скопируйте и вставьте код примера в этот новый проект и попробуйте запустить его. Я выполнил эти шаги и не смог получить содержимое в списке. –