2010-10-27 64 views
0

说我有在背后说我的代码一堆局部常量的我想作为标题来使用,例如:Silverlight的DataGrid标题结合常数

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

有什么办法我可我DataGridColumns的标题绑定到这些事件一样被绑定到本地方法,例如:

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

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

回答

1

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

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

你的用户控件的声明如下:

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

为您的标题:

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

它会更容易,如果Silverlight支持X:静态的,但它确实不。看到Silverlight 4 Equivalent to WPF "x:static"

+0

我得到“System.Windows.Data.Binding”作为我的头使用这种方法。 – PhilBrown 2010-10-28 12:46:00