¿Por qué la vinculación de datos TwoWay no funciona en la propiedad de texto de un combobx en .NET 4.0 (está funcionando en .net 3.5)?¿Por qué la vinculación de datos TwoWay no funciona en la propiedad de texto de un combobx en .net 4.0?
Mi código:
tengo un archivo XML como esto:
<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>
y tengo un control ListItem
así:
<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>
Aquí está el código detrás:
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");
}
hago así porque puedo tener un ComboBox
con auto-completado con la opción personalizada différents para cada uno, pero puedo escribir lo que quiero, y el resultado es en la opción de atributo del elemento <combobox>
que funcione bien si me dirijo a .net 3.5, pero solo se vincula a textbox si apunto .net 4.0
¿Por qué? ¿Qué puedo hacer?
¡Gracias de antemano por su ayuda!
Parece que no puedo hacer que esto funcione. ¿Es posible que corrija su muestra de código? Cree una nueva aplicación WPF, copie y pegue su código de muestra en ese nuevo proyecto e intente ejecutarlo. Completé estos pasos y no pude obtener los contenidos en el cuadro de lista. –