Xaml 使其成为单线不可聚焦
我找到了一种使整个列表框不可聚焦的方法,但我想知道是否有一种方法可以使lsitbox中的一行不可聚焦Xaml 使其成为单线不可聚焦,xaml,focus,Xaml,Focus,我找到了一种使整个列表框不可聚焦的方法,但我想知道是否有一种方法可以使lsitbox中的一行不可聚焦 <ListBox.ItemContainerStyle> <Style TargetType="Control"> <Setter Property="Focusable" Value="False" /> </Style> </ListBox.ItemContainerStyle> 如果您使用的是MVVM,
<ListBox.ItemContainerStyle>
<Style TargetType="Control">
<Setter Property="Focusable" Value="False" />
</Style>
</ListBox.ItemContainerStyle>
如果您使用的是MVVM,那么很容易:
<ListBox.ItemContainerStyle>
<Style TargetType="Control">
<Style.Triggers>
<DataTrigger Binding="{Binding DontFocusMeBro}" Value="True">
<Setter Property="Focusable" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
这假设您的列表框
中填充了您编写的C#类的实例:
public class MyListItem : MyViewModelBase
{
private bool _dontFocusMeBro;
public bool DontFocusMeBro {
get { return _dontFocusMeBro; }
set {
if (value != _dontFocusMeBro) {
_dontFocusMeBro = value;
OnPropertyChanged();
}
}
}
private bool _makeMeFocusable;
public bool MakeMeFocusable
{
get { return _makeMeFocusable; }
set
{
if (value != _makeMeFocusable)
{
_makeMeFocusable = value;
OnPropertyChanged();
}
}
}
// ... other properties ...
}
如果要用字符串或其他东西填充它,或者更糟糕的是在codebehind的循环中添加ListBoxItem
实例,则必须编写转换器或其他东西。如果你给我更多的细节,我可以让你专注于如何使用你自己的代码来实现这一点
public class MyListItem : MyViewModelBase
{
private bool _dontFocusMeBro;
public bool DontFocusMeBro {
get { return _dontFocusMeBro; }
set {
if (value != _dontFocusMeBro) {
_dontFocusMeBro = value;
OnPropertyChanged();
}
}
}
private bool _makeMeFocusable;
public bool MakeMeFocusable
{
get { return _makeMeFocusable; }
set
{
if (value != _makeMeFocusable)
{
_makeMeFocusable = value;
OnPropertyChanged();
}
}
}
// ... other properties ...
}