Warum Databinding TwoWay nicht mit der Texteigenschaft eines combobx in .net 4.0 arbeiten (es funktioniert in .net 3.5)?Warum Databinding TwoWay nicht mit der Texteigenschaft eines combobx in .net 4.0 arbeiten?
Mein Code:
ich eine XML-Datei wie folgt aussehen:
<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>
und ich habe eine ListItem
Kontrolle wie folgt aus:
<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>
Hier ist der Code hinter:
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");
}
Ich mag das tun, weil ich ein ComboBox
mit Auto-Vervollständigung mit der différents benutzerdefinierten Option für jeden haben kann, aber ich kann schreiben, was ich will, und das Ergebnis ist in dem Attribute Option des Elements <combobox>
Es funktioniert wenn ich ziele .net 3.5, aber nur textbox binden wenn ich ziele .net 4.0
Warum? Was kann ich tun?
Vielen Dank für Ihre Hilfe!
Ich kann nicht scheinen, dass dies funktioniert. Ist es möglich, dass Sie Ihr Codebeispiel korrigieren? Erstellen Sie eine neue WPF-Anwendung, kopieren und fügen Sie Ihren Beispielcode in das neue Projekt ein und versuchen Sie, es auszuführen. Ich habe diese Schritte ausgeführt und konnte keine Inhalte in die Listbox bringen. –