2

私の xaml ファイルには、異なるコレクションにバインドされ、異なる名前と異なる Grid.Column 属性を持つ 2 つの同一の DataGrid があります。これらのデータ グリッドのマークアップを繰り返さずに、より簡潔にする方法はありますか? プログラミング言語のマクロ置換のようなものですか?

      <DataGrid AutoGenerateColumns="False"
                CanUserAddRows="False"
                ItemsSource="{Binding View0}"
                Name="DataGrid0"
                SelectedItem="{Binding SelectedTask}"
                SelectionMode="Single"
                Grid.Column="0"
                views:DataGridProperties.RowEditEndingCommand="{Binding UpdateTaskCommand}">
      ...
      </DataGrid>
      ...
      <DataGrid AutoGenerateColumns="False"
                CanUserAddRows="False"
                ItemsSource="{Binding View1}"
                Name="DataGrid1"
                SelectedItem="{Binding SelectedTask}"
                SelectionMode="Single"
                Grid.Column="1"
                views:DataGridProperties.RowEditEndingCommand="{Binding UpdateTaskCommand}">
      ...
      </DataGrid>

4

2 に答える 2

1

通常、ほとんどのプロパティを処理する同一の値に使用Stylesします。プロパティが同一でない場合は、通常、それ以上進む必要はありません。

于 2012-04-30T04:11:43.427 に答える
0

これを行うには非常に多くの方法があり、これに対する唯一の正解はないと思います。ここに私の頭の上のほんの一部があります:

A) 関数のようにデータグリッドの「ジェネレーター」を持ち、コードを介してデータグリッドを動的にロードすることができます。

B) データグリッドを xaml 経由で動的にロードできます (xaml マークアップをロード)。

C) xaml で単一のデータグリッドを定義します。次に、最初のデータグリッドからコピーされたプロパティを使用して、追加のデータグリッドを ContentControl、ItemsControl、StackPanel などに動的に追加します。

D) データグリッド (つまり、カスタム DataGrid コントロール) を定義する UserControl を作成できます。次に、Xaml またはコードを介してこのデータグリッドを追加するだけです。

于 2012-04-30T04:13:53.063 に答える