将数据模板复选框设置为三层

本文关键字:三层 设置 数据 复选框 | 更新日期: 2023-09-27 18:17:47

我想让我的datatemplate中的复选框有三个属性,我实现了一个函数来设置listview列的datatemplate作为复选框,但我希望它允许三个属性

public DataTemplate SampleTemplate()
{
    DataTemplate dt = new System.Windows.DataTemplate();
    dt.DataType = typeof(bool);
    FrameworkElementFactory fef = new FrameworkElementFactory(typeof(CheckBox));
    Binding bd = new Binding("EnabledThreading");
    fef.SetBinding(CheckBox.IsCheckedProperty, bd);
    dt.VisualTree = fef;
    return dt;
} 

将数据模板复选框设置为三层

设置相应的属性,大致如下:

fef.SetValue(CheckBox.IsThreeStateProperty, true);

(如果您没有注意到,FrameworkElementFactory已弃用)

CheckBox有一个IsChecked属性,它是一个可空的布尔值,这意味着它可以有三个可能的值- true, false和null。为每个实例设置合适的值。

您还需要将CheckBox的IsThreeState属性设置为true