我有一些像这样设置的ComboBox:
<ComboBox Name="CB_OS" Grid.Row="5" ItemsSource="{Binding OS_Sellection}" SelectedIndex="0" Margin="2" SelectionChanged="OSSelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<ComboBoxItem Content="{Binding Name}" IsSelected="{Binding IsSelected, Mode=TwoWay}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
ComboBox正确填充ComboBoxItems,但单击文本(Content)不会选择Item。我必须点击其他地方,没有文字来实际更改所选项目。
如果我将其更改为:
<ComboBox Name="CB_OS" Grid.Row="5" SelectedIndex="0" Margin="2" SelectionChanged="OSSelectionChanged">
<ComboBoxItem Content="OOOOOOOOO"/>
<ComboBoxItem Content="OOOOOOOOO"/>
<ComboBoxItem Content="OOOOOOOOO"/>
</ComboBox>
它工作正常。
OS_Selection仅包含以下成员:
private string name;
private bool isChecked;
private bool isSelected;
所以我的问题是:如何让整行(项目)可点击?
答案 0 :(得分:1)
请勿在{{1}}
中加入ComboBoxItem
改变这个:
ComboBox.ItemTemplate
为此:
<ComboBox Name="CB_OS" Grid.Row="5" ItemsSource="{Binding OS_Sellection}" SelectedIndex="0" Margin="2" SelectionChanged="OSSelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate>
<ComboBoxItem Content="{Binding Name}" IsSelected="{Binding IsSelected, Mode=TwoWay}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
此外,WPF不会绑定到<ComboBox Grid.Row="5" Margin="2"
ItemsSource="{Binding OS_Sellection}"
DisplayMemberPath="Name"/>
,只会绑定private fields
。