在我的解决方案中,我设置了列表的默认值,如下面的代码
<ListBox x:Name="SelectorList"
ItemsSource="{Binding ViewStatusList}"
SelectedItem="{Binding SelectedDeviceItem,Mode=TwoWay}"
IsSynchronizedWithCurrentItem="True">
在我的视图模型中为SelectedDeviceItem创建属性。
private Device _selecteddeviceitem;
public Device SelectedDeviceItem
{
get
{
return _selecteddeviceitem;
}
set
{
_selecteddeviceitem = value;
OnPropertyChanged("SelectedDeviceItem");
}
}
并通过SelectedDeviceItem = StatusList[0];
在构造函数中。
但我的列表框仍然如下所示。
但我需要的结果应该像下图
我在这个列表框代码中遗漏了什么?
答案 0 :(得分:1)
我认为这可以实现它:
将选定的ListBoxItem
设置为焦点。
private void ListBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var listbox = sender as ListBox;
var listboxItem =
listbox?.ItemContainerGenerator.ContainerFromItem(listbox.SelectedItem) as ListBoxItem;
listboxItem?.Focus();
}
加载ListBox
时设置焦点。这是因为可以在生成ListBoxItems
之前选择它。
private void ListBox_Loaded(object sender, RoutedEventArgs e)
{
var listbox = sender as ListBox;
var listboxItem =
listbox?.ItemContainerGenerator.ContainerFromItem(listbox.SelectedItem) as ListBoxItem;
listboxItem?.Focus();
}
请注意,在视图模型中不应该实现选择项目的逻辑,它只是一种UI逻辑。
答案 1 :(得分:-1)
似乎ListboxItem没有集中注意力。请将ListBox设置为焦点并将项目设置为焦点
var_and= A1 && A2;
var_and=var_and && A3;..
.
.
var_and=var_and && A10;