【问题标题】:Silverlight datagrid header binding to constantSilverlight 数据网格标头绑定到常量
【发布时间】:2010-10-27 20:29:53
【问题描述】:

假设我的代码中有一堆局部常量,我想用作标题,例如:

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

等等

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

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

这可以吗?也许通过使用一些动态 ResourceDictionary 之类的?

【问题讨论】:

    标签: silverlight data-binding xaml


    【解决方案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:Static 会更容易,但它不支持。见Silverlight 4 Equivalent to WPF "x:static"

    【讨论】:

    • 我使用这种方法得到“System.Windows.Data.Binding”作为我的标题。
    【解决方案2】:

    如果不编辑 DataGridTextColumn 的控件模板,这似乎无法完成,因为 Header 不是 FrameworkElement...

    Dynamically setting the Header text of a Silverlight DataGrid Column

    【讨论】:

    • 那你能不能再试试我的解决方案?
    • 我尝试了您的解决方案,我使用该方法将“System.Windows.Data.Binding”作为我的标题。
    猜你喜欢
    • 2012-01-20
    • 1970-01-01
    • 2011-10-29
    • 2011-05-11
    • 2014-04-14
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多