gpt4 book ai didi

wpf - 我可以将 DataGrid 的 CellTemplate 定义为 Resource 以便它可以在多个列中重复使用吗?

转载 作者:行者123 更新时间:2023-12-04 18:49:33 25 4
gpt4 key购买 nike

我想要 DataGrid 中所有列的特定模板。通常的方法是我将在每个列的 DataGrid 中多次复制 DataTemplate 的整个 XAML。

有什么方法可以将 CellTemplate 全局定义为资源,然后将“Binding”的“Path”属性传递给它,以便它显示 DataContext 中的正确项目?

这可能吗 ?

最佳答案

使用键/名称在 App.Xaml 文件中创建 DataTemplate。

 <DataTemplate x:Name="myTemplate" TargetType="sdk:DataGridTemplateColumn">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding FirstName}" BorderThickness="0"/>
<TextBox Text="{Binding LastName}" BorderThickness="0"/>
</StackPanel>
</DataTemplate>

现在您可以在 DataGrid 中使用此模板,例如
 <sdk:DataGridTemplateColumn Header="Name" CellTemplate={StaticResource myTemplate}>

或者
您可以在后面的代码中传递绑定(bind)路径名称,例如...
        string colPath = "FirstName";
DataGrid grid = new DataGrid();
grid.ItemsSource = myViewModel.EmpCollection;

DataGridTemplateColumn column = new DataGridTemplateColumn();
DataTemplate itemTemplate = (DataTemplate)XamlReader.Load("<DataTemplate xmlns=\"http://schemas.microsoft.com/client/2007\"> <ContentPresenter Content=\"{Binding Path=" + colPath + "}\" /></DataTemplate>");

column.CellTemplate = itemTemplate;
grid.Columns[0] = column;

希望这会有所帮助。

关于wpf - 我可以将 DataGrid 的 CellTemplate 定义为 Resource 以便它可以在多个列中重复使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8354650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com