【发布时间】:2014-01-16 12:54:33
【问题描述】:
我想在 WPF c# 中创建一个 dataGrind,在同一列中使用不同类型的单元格来获取用户输入。
我的 DataGrid 应该如下所示:
那么我将如何将名称和年龄单元格格式化为文本框单元格。性别和状态单元格到组合框单元格?
【问题讨论】:
我想在 WPF c# 中创建一个 dataGrind,在同一列中使用不同类型的单元格来获取用户输入。
我的 DataGrid 应该如下所示:
那么我将如何将名称和年龄单元格格式化为文本框单元格。性别和状态单元格到组合框单元格?
【问题讨论】:
如果您将来需要更多字段,并希望重用某些功能,请查看WPF Property Grid。
如果您的行在此布局中是固定的,并且您不希望它们经常更改,您可以考虑使用标准网格的替代方法:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock>Name</TextBlock>
<TextBlock Grid.Row="1">Age</TextBlock>
<TextBlock Grid.Row="2">Gender</TextBlock>
<TextBlock Grid.Row="3">State</TextBlock>
<TextBox Grid.Column="1"></TextBox>
<TextBox Grid.Row="1" Grid.Column="1"></TextBox>
<ComboBox Grid.Row="2" Grid.Column="1"></ComboBox>
<ComboBox Grid.Row="3" Grid.Column="1"></ComboBox>
</Grid>
【讨论】:
如果您使用 MVVM 模式,那么(我认为是这样)您应该为单元创建一个 ViewModel 并将其绑定为 ItemSource。在您的 ViewModel 中,您可以设置所需的元素。应该可以在 TextBoxes 和 ComboBoxes 之间进行切换。
你可能在这里找到答案:
WPF DataGrid with different UserControl in each Cell;
WPF DataGrid different edit controls within a single column
http://tech.pro/tutorial/807/wpf-tutorial-how-to-use-a-datatemplateselector
附:这还不够回答,但我没有足够的积分来评论这个问题。
【讨论】: