我建立了一个具有自定义列的数据网格:

<DataGridTemplateColumn
    Header="{x:Static local:MainWindowResources.gasNameLabel}"
    Width="*"
    MinWidth="150">
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <TextBox
                Name="GasNameTextBox"
                Text="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}"
                Padding="2,0,0,0" />
            <DataTemplate.Triggers>
                <Trigger
                    SourceName="GasNameTextBox"
                    Property="IsVisible"
                    Value="True">
                    <Setter
                        TargetName="GasNameTextBox"
                        Property="FocusManager.FocusedElement"
                        Value="{Binding ElementName=GasNameTextBox}"/>
                </Trigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Label
                Name="GasNameLabel"
                Content="{Binding Path=Name}"
                Padding="0,0,0,0"
                Margin="6,2,2,2" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>


当我要重用这样的列定义A LOT时,我真的很想将其定义为一个外部DataTemplate,我只提供要绑定的属性(Binding Path = ...),其余的重用。 。那样,我将定义文本模板,复选框模板等,并在各种网格中重用它们,仅将绑定更改为不同的属性。

那可能吗?

弗拉丹

最佳答案

使用UserControl代替,将其放入应用程序资源中,然后重新使用usercontrol。

关于wpf - WPF重用DataGrid TemplateColumnDataTemplates,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7518303/

10-13 06:54