C# WPF组合框正在设置新对象';通过datacontext更改selecteditem时旧对象上的s值
我有一个WPF中的组合框。组合框位于网格内部,网格的DataContext绑定到ListView的SelectedItem。组合框的ItemsSource设置为StaticResource,位于窗口资源中。ItemsSource不会更改。我尝试使用SelectedValue和SelectedItem,但这两种方法都会导致相同的问题。问题在于,当ListView的SelectedItem发生更改时,ComboBox实际上是在将以前选定项的属性值设置为新选定项的属性值。很明显我做错了什么,因为我在过去多次使用组合框都没有这个问题。我在网上搜遍了,找不到答案。我发现的最接近、最相似的问题是: 但似乎没有解决办法。评论中列出的解决方案对我不起作用 我为ListView和ComboBox创建了SelectionChanged事件,并在每个事件和正在设置的属性上设置断点。该属性实际上是在触发其中一个之前设置的。所以,即使我想创建一些黑客解决方案,我也不能 作为记录,组合框功能工作得非常好。当在ListView中选择一个对象时,我可以看到Template name属性,正如我应该看到的那样,并且项目列表是正确的。如果手动更改所选项目,则属性将更改为新项目,就像它应该更改的那样。问题是,当我更改ListView中的选定项时,新选定对象的“模板”属性被设置为以前选定对象的“模板”属性。因此,组合框比其他任何东西都要先改变 ListView和ComboBox的xaml如下所示C# WPF组合框正在设置新对象';通过datacontext更改selecteditem时旧对象上的s值,c#,wpf,combobox,C#,Wpf,Combobox,我有一个WPF中的组合框。组合框位于网格内部,网格的DataContext绑定到ListView的SelectedItem。组合框的ItemsSource设置为StaticResource,位于窗口资源中。ItemsSource不会更改。我尝试使用SelectedValue和SelectedItem,但这两种方法都会导致相同的问题。问题在于,当ListView的SelectedItem发生更改时,ComboBox实际上是在将以前选定项的属性值设置为新选定项的属性值。很明显我做错了什么,因为我在过
<ListView x:Name="my_ListBox" FlowDirection="RightToLeft"
Margin="5" Grid.RowSpan="2" SelectedIndex="0"
ItemsSource="{Binding Source={StaticResource myList}}"
DisplayMemberPath="Name"
SelectionChanged="my_ListBox_SelectionChanged"/>
<Grid DataContext="{Binding ElementName=my_ListBox, Path=SelectedItem}">
<ComboBox Name="comboBox_myTemplate"
ItemsSource="{Binding Source={StaticResource myTemplatesList}}"
SelectedValue="{Binding Template}"
SelectionChanged="comboBox_myTemplate_SelectionChanged"
DisplayMemberPath="Name" FontSize="20" Margin="5"/>
</Grid>
如果我在组合框中设置“IsSynchronizedWithCurrentItem=“True”,问题就解决了。如果有人想解释它到底在做什么以及它是如何工作的,我很乐意听到。谢谢。如果我在组合框中设置“IsSynchronizedWithCurrentItem=“True”,问题就解决了。如果有人想解释它到底在做什么以及它是如何工作的,我很乐意听到。谢谢