Silverlight数据网格绑定到常量

时间:2010-10-27 20:29:53

标签: silverlight data-binding xaml

假设我的代码后面有一堆本地常量,我想用作标题,例如:

const string TYPE_HEADER = "Type";
const string LOCATION_ HEADER = "Location";

有什么方法可以将我的DataGridColumns的标头绑定到这些类似事件绑定到本地方法,例如:

<data:DataGridTextColumn Header="{Binding TYPE_HEADER}" />

可以这样做吗?也许通过使用一些动态的ResourceDictionary或什么?

2 个答案:

答案 0 :(得分:1)

TYPE_HEADER必须是字符串属性(它可以由const支持)。制作容器:

public class MyStaticDataProvider
{
public string TYPE_HEADER { get { return "blkajsd"; } }
}

在你的usercontrol声明下面:

<UserControl.Resources>
<ResourceDictionary>
 <MyNamespace:MyStaticDataProvider x:Key="NameProvider" />
</ResourceDictionary>
</UserContro.Resources>

标题:

Header="{Binding Path=TYPE_HEADER, Source={StaticResource NameProvider}, Mode=OneTime}"

如果silverlight支持x:Static会更容易,但它不会。见Silverlight 4 Equivalent to WPF "x:static"

答案 1 :(得分:0)

看来如果不编辑DataGridTextColumn的控件模板就无法完成,因为Header不是FrameworkElement ......

Dynamically setting the Header text of a Silverlight DataGrid Column