【问题标题】:Binding DataGrid column headers in Silverlight在 Silverlight 中绑定 DataGrid 列标题
【发布时间】:2023-03-07 12:36:01
【问题描述】:

我已经看到了很多关于这个主题的未答复的帖子,但我仍然倾向于相信这里的某个人已经弄清楚了这一点,并且正在阻止我们其他人。

我有一个包含模板列和文本列混合的 DataGrid。我只需要一种将标题绑定到视图模型中的属性的方法,以便我可以为不同的语言使用不同的字符串。

我已经看过WPF datagrid header text binding 以及与之相关的每个帖子。此处建议的方法均不适用于 Silverlight。

没有人有任何想法吗?

【问题讨论】:

标签: data-binding silverlight-4.0 datagrid


【解决方案1】:

我最近也花了一些时间来研究这个,这是我如何让它为其他人的利益工作的。

首先在顶部声明命名空间,以便我可以在 xaml 中简写指定它。

xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"

然后我将标题样式声明为顶部的静态资源以保持数据网格 xaml 干净:

<navigation:Page.Resources>        
    <Style x:Key="NameStyle" TargetType="sdk:DataGridColumnHeader">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=LocalizedStrings.Name, Source={StaticResource Language}}"/>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style x:Key="DescriptionStyle" TargetType="sdk:DataGridColumnHeader">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=LocalizedStrings.Description, Source={StaticResource Language}}"/>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</navigation:Page.Resources>

然后在您的数据网格 xaml 中,您可以简单地将 DataGridTextColumns 标题样式设置为静态资源标题样式。

<sdk:DataGrid.Columns>
    <sdk:DataGridTextColumn Width="Auto" FontSize="11" MinWidth="100" Binding="{Binding Name}" HeaderStyle="{StaticResource NameStyle}" />
    <sdk:DataGridTextColumn Width="1*" FontSize="11" Binding="{Binding Description}" HeaderStyle="{StaticResource DescriptionStyle}" />
</sdk:DataGrid.Columns>

我最初的解决方案来自这篇文章:Dynamically setting the Header text of a Silverlight DataGrid Column

刚刚整理了一下,因为我要设置 15 个列标题。

【讨论】:

    猜你喜欢
    • 2011-08-15
    • 1970-01-01
    • 2012-05-24
    • 2013-12-17
    • 1970-01-01
    • 2011-11-24
    • 2015-01-02
    • 2011-12-25
    • 1970-01-01
    相关资源
    最近更新 更多