Ere*_*rez 6 wpf binding selecteditem itemssource
我有两个不同的列表,ItemsSource但SelectedItem绑定到相同的属性 - " 名称 ".
首先,我在右侧列表中选择项目"c",因此也会选择左侧列表中的项目"c".
比我在右侧列表中选择了另一个项目,但左侧列表中的"c"仍然被选中.我明白为什么会这样做,但是我可以让它取消选择右侧列表中的"c"吗?

XAML:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ListView SelectedItem="{Binding Name}" ItemsSource="{Binding lstNames1}"/>
<ListView SelectedItem="{Binding Name}" ItemsSource="{Binding lstNames2}" Grid.Column="1"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
代码背后:
public partial class selected : Window
{
public ObservableCollection<string> lstNames1 { get; set; }
public ObservableCollection<string> lstNames2 { get; set; }
public string Name { get; set; }
public selected()
{
Names1 = new ObservableCollection<string> {"a1", "b1", "c"};
Names2 = new ObservableCollection<string> { "a2", "b2", "c" };
InitializeComponent();
DataContext = this;
}
}
Run Code Online (Sandbox Code Playgroud)
如果你将SelectedItem绑定切换到SelectedValue这个将按照你想要的方式运行,那么SelectedItem不会null因为其他列表设置了值而没有设置,因为SelectedValue它必须找到一个项目或者它将清除SelectedItem列表上的一些不同.
<ListView SelectedValue="{Binding Name}" ItemsSource="{Binding lstNames1}" />
<ListView SelectedValue="{Binding Name}" ItemsSource="{Binding lstNames2}" Grid.Column="1"/>
Run Code Online (Sandbox Code Playgroud)
希望有意义:)
