如何在WPF网格控件中选择一行?

时间:2013-04-07 12:36:10

标签: wpf grid wpf-controls

我使用网格显示直到运行时才知道的数据。我的网格的XAML非常简单,因为我以编程方式添加控件。我需要网格灵活。

我希望用户能够选择(突出显示)网格中的整行,然后能够单击按钮来处理该行中的数据。我怎么能这样做?

我无法找到与我的问题相关的任何信息。任何想法都将不胜感激。

这是XAML:

 <Grid x:Name="lstAssigned" ShowGridLines="True">
        <Grid.ColumnDefinitions>
           <ColumnDefinition Width="auto"></ColumnDefinition>
           <ColumnDefinition Width="auto"></ColumnDefinition>
           <ColumnDefinition Width="auto"></ColumnDefinition>
           <ColumnDefinition Width="auto"></ColumnDefinition>
           <ColumnDefinition Width="auto"></ColumnDefinition>
           <ColumnDefinition Width="auto"></ColumnDefinition>
           <ColumnDefinition Width="auto"></ColumnDefinition>
           <ColumnDefinition Width="auto"></ColumnDefinition>
        </Grid.ColumnDefinitions>
     </Grid>

enter image description here

谢谢大家!

以下是一些更多细节: 要显示的数据会有所不同。网格将有5列。第2列和第3列将是组合框。其他列是textBoxes。用户将输入数据并保存。

另一次,要显示的数据可能是:第2列和第4列中的组合框,以及第5列中的日期。由于我的数据源会有所不同,我试图以编程方式在每列中设置控件类型。

我最初使用DataTemplates开始使用DataGrid,但这会定义列和顺序。我错了吗?我想在运行时定义它们。

处理此问题的最佳方法是什么?我应该使用什么类型的控制?

我会感激你提供的任何一种箴言。

提前致谢。

2 个答案:

答案 0 :(得分:0)

这听起来应该为每种情况使用2个单独的DataGrid。有一些方法可以在运行时以编程方式更改列,但它更加混乱并导致可维护性降低。如果给我这个任务,我只会使用2个不同的DataGrid s,

一个案例#1,你需要

Text      Combo       Combo       Text      Text

和另一个案例#2:

Text      Combo       Text        Combo     DateTime

听起来像一个非常简单的集合,没有重大问题,那么你可以为每种类型的Model对象创建一个包含每个DataTemplate的正确DataGrid

答案 1 :(得分:0)

网格不支持选择行/列/单元格。它用于布局显示控件。使用别的东西,比如ListView。