Combobox与复选框

时间:2013-09-08 11:01:14

标签: c# .net wpf mvvm combobox

我想用CheckBoxes构建一个ComBobox。目前我已经这样做了。

我已将datatemplate定义为

 <DataTemplate x:Key="CheckComboBox">
    <StackPanel Orientation="Horizontal" Name="CheckboxHolder" Width="120">
       <CheckBox Name="CheckComboBox" HorizontalContentAlignment="Stretch"  IsChecked="{Binding Selected, Mode=TwoWay}"  Tag="{Binding DisplayString}" Content ="{Binding DisplayString}" Unchecked="CheckComboBox_Unchecked" Checked="CheckComboBox_Checked"/>
    </StackPanel>
 </DataTemplate>

我用它作为

<ComboBox Name="Types" IsEditable="True" Width="120" IsReadOnly="True" IsHitTestVisible="True" ItemTemplate="{StaticResource CheckComboBox}" ItemsSource="{Binding typesOfRules}" SelectionChanged="cb_SelectionChanged" />

我的viewmodel将DisplayString和Selected公开为属性。基于复选框,单击我将combobox.text属性设置为逗号分隔字符串。

目前的问题是,当我点击组合框的下拉列表中的文本外部区域(复选框的内容)时,正在为我不想要的combobox.text属性设置一些viewmodel对象。那么我该如何避免这种情况呢?我可以禁用该事件,或者更好的解决方案是复选框的内容属性应覆盖整个组合框,以便在用户单击的任何位置选择该特定复选框。

0 个答案:

没有答案