我有3列使用数据库中的xaml中的绑定填充,然后我在ListView
中有一些动态的列。动态列具有从后面的代码填充的标题,例如:
viewLayout.Columns.Add(
new GridViewColumn {
Header = subjectvalues_forstdatt[i],
DisplayMemberBinding = new Binding(String.Format("[{0}]", i))
}
);
我想在此动态列中使用CheckBox
,而不是displaymemberbinding显示的内容。
答案 0 :(得分:1)
没有测试过,但是这样的事情应该有效:
DataTemplate template = new DataTemplate { DataType = typeof(object) }; // <-- insert your concrete objet type here
FrameworkElementFactory stackPanelFactory = new FrameworkElementFactory(typeof(StackPanel));
stackPanelFactory.SetValue(StackPanel.OrientationProperty, Orientation.Vertical);
FrameworkElementFactory checkbox = new FrameworkElementFactory(typeof(CheckBox));
checkbox.SetBinding(CheckBox.IsCheckedProperty, new Binding(String.Format("[{0}]", subjectvalues_forstdatt[i]));
stackPanelFactory.AppendChild(checkbox);
viewLayout.Columns.Add(new GridViewColumn
{
Header = subjectvalues_forstdatt[i],
CellTemplate = template
或者我更喜欢在XAML中编写DataTemplate
并通过KeyBehind中的Key访问它。
CellTemplate = TryFindResource("myDataTemplateKey") as DataTemplate