ComboBox IsChecked绑定在数据模板中不起作用

时间:2018-12-04 18:54:52

标签: c# wpf checkbox combobox binding

我有一个带有文本块的ComboBox和一个Checkbox,可让我根据该复选框设置视图模型的布尔属性。

查看代码

<ComboBox HorizontalAlignment="Left" IsEditable="True" IsReadOnly="True" Text="-- Filter Columns --">
   <ComboBoxItem>
      <ComboBoxItem.ContentTemplate>
         <DataTemplate>
            <StackPanel Orientation="Horizontal">
               <TextBlock Text="Description"/>
               <CheckBox IsChecked="{Binding DescriptionHeaderVisibility}"/>
            </StackPanel>
         </DataTemplate>
      </ComboBoxItem.ContentTemplate>
   </ComboBoxItem>
</ComboBox>

查看模型属性

 public bool DescriptionHeaderVisibility
 {
     get => _descriptionHeaderVisibility;
     set => Set(ref _descriptionHeaderVisibility, value);
 }

有用的信息

  • 我正在使用MVVM Light
  • 如果我在页面上的其他位置进行完全相同的复选框绑定,则它会起作用并将更改通知我的视图模型。
  • 仅绑定在模板组合框内不起作用

我不确定为什么绑定在组合框模板中不起作用?我只是在这里想念我不知道的东西吗?如果我可以使此绑定正常工作,则计划是添加另外几行文本块和复选框,这些行均绑定到我的视图模型中的不同布尔属性。

下拉框图片

enter image description here

1 个答案:

答案 0 :(得分:0)

问题是,您正在使用ContentTemplate,但没有为其提供任何要显示的内容。如果您只想使用周围的DataContext,则可以编写

<ComboBoxItem Content="{Binding .}">

this answer的启发,遇到了类似的问题。