<TabItem Name="tbInActive" Header="Previous" Width="100" Height="100">
<ListBox Name="lbActive"
DockPanel.Dock="Top"
ItemContainerStyle="{DynamicResource SelectedItemContainer}">
<ListBox.ItemTemplate>
<DataTemplate >
<EventDet:EventSumDetail x:Name="ItemCtrl"
SelectedItem="{Binding ElementName=lbInActive, Path=SelectedItem}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<!-- ... -->
</TabItem>
在我的代码隐藏中,我尝试了
this.lbActive.SelectedItem = null;
和this.lbActive.UnselectAll();
以及(编辑)this.lbActive.SelectedIndex = -1;
但他们没有效果。
答案 0 :(得分:1)
this.lbActive.SelectedItem = null;
没有理由不起作用。 (它适用于干净的平板ListBox)
我很确定您的自定义部件存在问题,SelectedItem="{Binding ElementName=lbInActive, Path=SelectedItem}"
正在强制进行选择,或者ItemContainerStyle
中的绑定会这样做。
答案 1 :(得分:0)
我认为EventDet:EventSumDetail是一种ListBoxItem或类似的东西。 你有一个OneWay绑定的问题(默认情况下)...你必须明确地使它成为TwoWay绑定..像这样:
<EventDet:EventSumDetail SelectedItem="{Binding ElementName=lbInActive, Path=SelectedItem, Mode=TwoWay}" />
此外,您不需要命名(x:Name =“ItemCtrl”),在这种情况下,它是不必要的。