Pourquoi la liaison de données TwoWay ne fonctionne pas sur la propriété text d'un combobx dans .net 4.0 (cela fonctionne dans .net 3.5)?Pourquoi la liaison de données TwoWay ne fonctionne pas sur la propriété text d'un combobx dans .net 4.0?
Mon code:
J'ai un fichier xml comme ceci:
<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>
et j'ai un contrôle ListItem
comme ça:
<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>
Voici le code derrière:
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");
}
-je faire comme ça parce que je peux avoir un ComboBox
avec auto-complétion avec l'option personnalisée Différents pour chacun, mais je peux écrire ce que je veux, et le résultat est dans l'option d'attribut de l'élément <combobox>
Il fonctionne bien si je cible .net 3.5, mais que la zone de texte est liée si je cible .net 4.0
Pourquoi? Que puis-je faire?
Merci d'avance pour votre aide!
Je n'arrive pas à faire marcher ça. Est-il possible que vous corrigiez votre exemple de code? Veuillez créer une nouvelle application WPF, copiez et collez votre exemple de code dans ce nouveau projet et essayez de l'exécuter. J'ai terminé ces étapes et je n'ai pas réussi à insérer le contenu dans la liste. –