1

我有 3 列使用数据库中的 xaml 中的绑定填充,然后我有一些列在ListView. 动态列的标题由后面的代码填充,例如:

viewLayout.Columns.Add(
    new GridViewColumn {       
        Header = subjectvalues_forstdatt[i],
        DisplayMemberBinding = new Binding(String.Format("[{0}]", i))    
    }
);

我想要一个CheckBox在这个动态列中,而不是 displaymemberbinding 显示的内容。

4

1 回答 1

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

或者我更喜欢DataTemplate用 XAML 编写并通过 CodeBehind 中的 Key 访问它。

CellTemplate = TryFindResource("myDataTemplateKey") as DataTemplate
于 2012-04-04T07:42:50.060 回答