使datatemplate复选框三态

时间:2011-12-12 11:03:24

标签: c# wpf checkbox datatemplate

我想让我在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;
} 

2 个答案:

答案 0 :(得分:3)

设置相应的属性,类似于:

fef.SetValue(CheckBox.IsThreeStateProperty, true);

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

答案 1 :(得分:1)

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

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