我有
<ListView SelectionMode="Single" SelectedIndex="0" ItemsSource="{Binding AccountViewModels}" SelectedItem="{Binding SelectedItem}" Style="{StaticResource AccountsList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<LocalViews:AccountView Margin="{StaticResource ControlMargin}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
有没有办法禁用从 ListView (即)取消选择项目ctrl+click
?换句话说,我不希望用户能够取消选择一个项目,但当然可以选择另一个项目。
由于此功能纯粹与视图/控件相关,因此不应在视图模型中实现,但您可以像这样处理 ListBoxItem 容器的 PreviewMouseLeftButtonDown 事件:
<ListView SelectionMode="Single" SelectedIndex="0" ItemsSource="{Binding AccountViewModels}" SelectedItem="{Binding SelectedItem}" Style="{StaticResource AccountsList}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ItemPreviewMouseLeftButtonDown" />
</Style>
</ListBox.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<LocalViews:AccountView Margin="{StaticResource ControlMargin}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
private void ItemPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
ListBoxItem lbi = sender as ListBoxItem;
e.Handled = lbi.IsSelected;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1466 次 |
最近记录: |