0

わかりました、私は慣習的ではないことを尋ねています。と があるビューを作成する必要がusersありdays of weekます。ユーザーごと、または 1 日ごとに値を 1 つだけ持つ必要がある場合は、datagridview を使用できます。ただしwagehourフィールドと、各ユーザーのフィールドが毎日必要です。スクリーンショットが役立つはずです。

ここに画像の説明を入力

両方の値を編集可能にする必要があります。ここに行く方法はどのような種類のコントロールですか? datagridview セルは 2 つのコントロールをホストできますか? これは要件そのものです。私はまだ Winforms または WPF を使用することに決めていませんが、前者は私が慣れているものです (そして、今は WPF を掘り下げる時間はあまりありませんが、私は知っているだけです)。

たとえば、dgvに 1 つのフィールドを持ちwage、dgv の外側の別のテキスト ボックスに表示hourするなど、いくつかの回避策があります。しかし、それはクライアントには使用できません。(これに対するハック/奇抜なソリューション/回避策は気にしません)

4

1 に答える 1

1

Gridヘッダー領域の標準が必要です。その場合、「行」は各行のグリッドItemsControlである可能性があります。次に、グリッドでItemsTemplateを使用して、すべての列を整列させることができます。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 に答える