在我的xaml文件中,我有两个相同的DataGrids,它们绑定到不同的集合,并且具有不同的名称和不同的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>
答案 0 :(得分:1)
使用Styles
表示相同的值,通常会处理大多数属性,如果属性不相同,则通常不需要再进行任何操作。
答案 1 :(得分:0)
有很多方法可以做到这一点,我认为没有一个正确的答案。 这只是我头脑中的一小部分:
A)你可以拥有一个数据网格“生成器”,就像一个函数一样,并通过代码动态加载你的数据网格。
B)你可以通过xaml动态加载你的数据网格(加载xaml标记)。
C)在xaml中定义了一个数据网格。然后动态地将其他数据网格添加到ContentControl,ItemsControl,StackPanel或其他任何内容,并从第一个数据网格中复制这些属性。
D)您可以创建一个UserControl来定义您的datagrid(即Custom DataGrid控件)。然后,您只需通过Xaml或代码添加此数据网格。