我希望避免在应用程序加载时默认情况下在Listbox
中发生的第一个项目选择。我试过
SelectedIndex= -1
但它不起作用。在ListBox
加载之前,我不希望选择任何项目,直到用户从Listbox
中选择任何项目。
我将IsSynchronization
设置为true,但将其设为false
也无法解决我的问题。虽然我必须始终将IsSychronization
设置为true
。但那没关系。我做谷歌但没有找到任何相关的答案。
谁能告诉我怎么做?
答案 0 :(得分:12)
我发生了这件事。当我将ListBox.ItemsSource
直接绑定到视图模型中的集合时,默认情况下没有选择任何内容。
当我切换为使用CollectionViewSource
作为ListBox.ItemsSource
时,默认情况下突然第一项被选中。
事实证明这是由ListBox.IsSynchronizedWithCurrentItem
引起的。将其设置为
IsSynchronizedWithCurrentItem="False"
ListBox
上的恢复了默认情况下未选择任何内容的所需行为。
答案 1 :(得分:0)
将IsEnabled绑定到一个布尔值,该布尔值将标记用户何时可以选择。列表框仍然可见但不可选。这是我使用的标签的样式代码,必须在登录期间启用它,但不能在操作停止后启用。
<Style x:Key="LabelStyle" TargetType="{x:Type Label}">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Width" Value="70" />
<Setter Property="Height" Value="28"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=LoginInProcess}" Value="True">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=LoginInProcess}" Value="False">
<Setter Property="IsEnabled" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>