Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有复选框的组合框_C#_.net_Wpf_Mvvm_Combobox - Fatal编程技术网

C# 带有复选框的组合框

C# 带有复选框的组合框,c#,.net,wpf,mvvm,combobox,C#,.net,Wpf,Mvvm,Combobox,我想建立一个带有复选框的组合框。目前我已经这样做了 我已经将数据模板定义为 <DataTemplate x:Key="CheckComboBox"> <StackPanel Orientation="Horizontal" Name="CheckboxHolder" Width="120"> <CheckBox Name="CheckComboBox" HorizontalContentAlignment="Stretch" IsCheck

我想建立一个带有复选框的组合框。目前我已经这样做了

我已经将数据模板定义为

 <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并选择了exposed as properties。根据复选框,单击我正在将combobox.text属性设置为单独的字符串


当前的问题是,当我单击combobox下拉列表中textcontent of checkbox之外的区域时,某些viewmodel对象正在为combobox.text属性设置,我不需要该属性。那么我如何避免这种情况呢?我可以禁用该事件,或者更好的解决方案是复选框的内容属性应该覆盖整个comboboxitem,这样无论用户单击何处,都会选中该复选框。

您可以共享更多VM代码和隐藏代码吗?