【问题标题】:How can i Create a wpf Datagrid view with dynamically generating combobox columns如何使用动态生成组合框列创建 wpf Datagrid 视图
【发布时间】:2016-05-18 14:11:59
【问题描述】:

如何使用动态生成的组合框(通过 c#)列创建 Datagrid 视图,以及如何将数据绑定到那些动态生成的列(通过 MVVM)。 我想为自动生成的列中的每个组合框生成不同的数据集合。

提前致谢。

【问题讨论】:

  • 我需要在按钮单击动作的运行时动态地向现有数据网格中添加更多带有组合框的列。我不知道要添加的列数,每次单击按钮都应该添加一个额外的组合框列,并且应该绑定数据。

标签: wpf mvvm combobox datagrid


【解决方案1】:

不确定为什么要通过 c# 添加组合框。 为什么不使用模板列来充分利用 MVVM。视图在 XAML 中定义,内容通过 ViewModel 数据绑定。

<DataGridTemplateColumn Header="ColumnHeader">
     <DataGridTemplateColumn.CellTemplate>
           <DataTemplate>
                 <local:CostumControlWithCombobox Text="{Binding Path=YourListToPickFrom}"/>
           </DataTemplate>
     </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

如果某个行的选择列表可能不同。您需要如何绑定匹配列表的规则或参数。请注意,也可以在 TemplateColumn 中添加具有 mvvm 行为的控件(只是为了演示),但您也可以绑定到组合框列表本身。

如果您仍然喜欢通过 C# 代码构建它,请查看 DataGridTemplateColumn 的类文档,它们也可以通过代码访问。 https://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtemplatecolumn(v=vs.110).aspx

HTH

【讨论】:

  • 我需要在按钮单击动作的运行时动态地向现有数据网格中添加更多带有组合框的列。我不知道要添加的列数,每次单击按钮时应添加一个额外的组合框列,并且应绑定数据。
  • 您应该在视图模型中定义列,并且数据绑定应该处理视图的更新。所以逻辑在视图模型中,视图通过绑定更新
  • 我不知道应该添加多少列,它应该取决于运行时的用户
猜你喜欢
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 2017-10-23
  • 2012-04-24
  • 1970-01-01
  • 2013-09-30
  • 2012-02-03
  • 1970-01-01
相关资源
最近更新 更多