我想在WPF c#中创建一个dataGrind,在同一列中使用不同类型的单元格来获取用户输入。
我的DataGrid应如下所示:
那么我如何将Name和Age单元格格式化为textbox单元格。性别和状态细胞到Combobox细胞?
答案 0 :(得分:1)
如果将来需要更多字段,并希望重用某些功能,请查看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>
答案 1 :(得分:0)
如果您使用MVVM-Pattern,那么(我想是这样)您应该为单元格创建一个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
P.S。它还不足以得到答案,但我没有足够的评论来评论这个问题。