2

在我的 xaml 文件中,我有两个相同的 DataGrid,它们绑定到不同的集合,并且具有不同的名称和不同的 Grid.Column 属性。有没有办法不重复这些数据网格的标记但有更简洁的东西?就像编程语言中的宏替换?

      <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)Uou 可以通过 xaml 动态加载您的数据网格(加载 xaml 标记)。

C)在您的 xaml 中定义了一个数据网格。然后动态地将其他数据网格添加到 ContentControl、ItemsControl、StackPanel 或其他任何东西,并从第一个数据网格复制属性。

D) 您可以创建一个 UserControl 来定义您的数据网格(即自定义 DataGrid 控件)。然后,您只需通过 Xaml 或代码添加此数据网格。

于 2012-04-30T04:13:53.063 回答