Data binding 在Silverlight中绑定DataGrid列标题
我已经看到了很多关于这个话题的未获回复的帖子,但我仍然倾向于相信有人在这里发现了这一点,并坚持对我们其他人 我有一个DataGrid,它混合了模板列和文本列。我只需要一种将头绑定到viewmodel中的属性的方法,这样我就可以为不同的语言使用不同的字符串 我已经看过了,每一篇文章都有链接。这里建议的方法都不适用于SilverlightData binding 在Silverlight中绑定DataGrid列标题,data-binding,silverlight-4.0,datagrid,Data Binding,Silverlight 4.0,Datagrid,我已经看到了很多关于这个话题的未获回复的帖子,但我仍然倾向于相信有人在这里发现了这一点,并坚持对我们其他人 我有一个DataGrid,它混合了模板列和文本列。我只需要一种将头绑定到viewmodel中的属性的方法,这样我就可以为不同的语言使用不同的字符串 我已经看过了,每一篇文章都有链接。这里建议的方法都不适用于Silverlight 没有人有任何想法吗 我最近也花了一些时间在这方面,下面是我如何让它为其他人的利益而工作的 首先在顶部声明名称空间,这样我可以在xaml中直接指定它 xmlns:s
没有人有任何想法吗 我最近也花了一些时间在这方面,下面是我如何让它为其他人的利益而工作的 首先在顶部声明名称空间,这样我可以在xaml中直接指定它
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
然后,我将标题样式声明为静态资源,以保持datagrid 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>
然后,在datagrid 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>
我最初的解决方案来自以下帖子:
只是整理了一下,因为我有15个列标题要设置 我最近也花了一些时间在这方面,下面是我如何让它为其他人的利益而工作的 首先在顶部声明名称空间,这样我可以在xaml中直接指定它
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
然后,我将标题样式声明为静态资源,以保持datagrid 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>
然后,在datagrid 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>
我最初的解决方案来自以下帖子:
只是整理了一下,因为我有15个列标题要设置 找到答案找到答案