111,094
社区成员




public bool IsChecked
{
get { return (bool)GetValue(IsCheckedProperty); }
set { SetValue(IsCheckedProperty, value); }
}
// Using a DependencyProperty as the backing store for IsChecked. This enables animation, styling, binding, etc...
public static readonly DependencyProperty IsCheckedProperty =
DependencyProperty.Register("IsChecked", typeof(bool), typeof(L_GrainAttr), new PropertyMetadata(false, IsCheckedChangeEvent));
public static void IsCheckedChangeEvent(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
L_GrainAttr lg = d as L_GrainAttr;
if (lg == null || lg.IsCheckedChange == null)
{
return;
}
lg.IsCheckedChange(d);
}
public delegate void change(object sender);
public event change IsCheckedChange;
var list = CreatForm.condlist as ObservableCollection<L_GrainAttr>;
foreach (L_GrainAttr lg in list)
{
lg.IsCheckedChange += lg_IsCheckedChange;
}
LbBox.ItemsSource = list;
DataTemplate dt =new DataTemplate();
FrameworkElementFactory fef =new FrameworkElementFactory(typeof(CheckBox));
bind.Path = new PropertyPath("GrainName");
fef.SetBinding(CheckBox.ContentProperty,bind);
dt.VisualTree = fef;
LbBox.ItemTemplate = dt;
还有就是,我这个选中完了以后,切换另一个条件,再切回来,我还得是刚才选中的几个选项的,另外稍稍吐槽一句,我怎么感觉WPF写个很简单的东西,都会绕了好几道弯弯,感觉特别变流,感觉比winform 复杂似得,唉,也许是我才开始转向WPF,学的不精吧。。。。恩,你说的这个方法,我明天上班再试试....