1

データベースから xaml のバインディングを使用して埋められた 3 つの列があり、次に動的な列がいくつかありますListView。動的な列には、次のようなコードビハインドからヘッダーが埋め込まれています。

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

CheckBoxdisplaymemberbinding によって表示されるコンテンツではなく、この動的列に が必要です。

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 に答える