0

好的,我在问一些不传统的东西。我需要在有users和的地方创建视图days of week。如果我需要每个用户/每天只有一个值,我可以使用 datagridview。但是我需要为每个用户每天都有一个wage字段和一个字段。hour屏幕截图应该会有所帮助。

在此处输入图像描述

我需要两个值都是可编辑的。什么样的控制是去这里的方式?datagridview 单元格可以承载两个控件吗?这就是这样的要求;我还没有决定使用 Winforms 或 WPF,但前者是我习惯的(现在没有太多时间深入研究 WPF,但我只是知道)。

有一些变通方法,例如,有一个字段,例如wage在 dgv 中并显示hour在 dgv 外部的单独文本框中等。但这对我们的客户不可用。(我不介意任何 hacky/wacky 解决方案/解决方法)

4

1 回答 1

1

您应该有一个Grid标题区域的标准,然后“行”可能是每行ItemsControlItemsTemplate网格。SharedSizeScope然后,您可以在网格上使用对齐所有列。

这是我的意思的一个例子

<Grid Grid.IsSharedSizeScope="True">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid x:Name="header">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" SharedSizeGroup="col1" />
            <ColumnDefinition Width="Auto" SharedSizeGroup="col2" />
            <ColumnDefinition Width="Auto" SharedSizeGroup="col3" />
        </Grid.ColumnDefinitions>
        <TextBlock FontWeight="Bold" Text="Col1" />
        <TextBlock FontWeight="Bold" Text="Col2" Grid.Row="1" />
        <TextBlock FontWeight="Bold" Text="Col3" Grid.Row="2" />
    </Grid>
    <ItemsControl ItemsSource="{Binding Users}" Grid.Row="1" x:Name="rows">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="col1" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="col2" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="col3" />
                    </Grid.ColumnDefinitions>
                    <TextBlock Text="{Binding Col1Data}" />
                    <TextBlock Text="{Binding Col2Data}" Grid.Row="1" />
                    <TextBlock Text="{Binding Col3Data}" Grid.Row="2" />
                </Grid>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>

此方案允许您创建一个数据网格,如 UI,具有极易定制的终极水平。

于 2012-06-15T14:02:02.897 回答