如何在DataGrid中的同一列中创建不同类型的单元格 - WPF C#

时间:2014-01-16 12:54:33

标签: c# wpf datagrid

我想在WPF c#中创建一个dataGrind,在同一列中使用不同类型的单元格来获取用户输入。

我的DataGrid应如下所示:

enter image description here

那么我如何将Name和Age单元格格式化为textbox单元格。性别和状态细胞到Combobox细胞?

2 个答案:

答案 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。它还不足以得到答案,但我没有足够的评论来评论这个问题。