代码之家  ›  专栏  ›  技术社区  ›  cyberbobcat

在Silverlight中是否可以将DataGrid的列标题文本绑定到资源字符串?

  •  2
  • cyberbobcat  · 技术社区  · 17 年前

    列标题定义如下所示,但我想用资源文件中的文本替换“MyHeaderText”:-

    <data:DataGridTextColumn Header="MyHeaderText" Binding="{Binding SomeData}" IsReadOnly="True"/>
    

    资源字符串将在UserControl.Resources部分中设置。

    3 回复  |  直到 17 年前
        1
  •  1
  •   Tom    17 年前

    标题显示区域是有限的。不过,您可以通过使用字符串而不是UIElement来实现这一点。确保在xaml文件中有“系统”名称空间的xmlns,如下所示:

    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    

    然后在UserControl的参考资料部分中定义以下内容:

    <sys:String x:Key="MyHeader">My Header Text</sys:String>
    

    然后你基本上可以按照Sorskoot说的做,你不应该收到错误:

    <data:DataGridTextColumn Header="{StaticResource MyHeader}" Binding="{Binding SomeData}" IsReadOnly="True" />
    
        2
  •  0
  •   Sorskoot    17 年前

    <data:DataGridTextColumn Header="{StaticResource SomeData}" 
                             IsReadOnly="True"/>
    

    其中“SomeData”是您的资源。

        3
  •  0
  •   Tom    17 年前

    注意,如果需要,您可以做的不仅仅是使用文本值,还需要使用HeaderStyle属性而不是Header属性。

    推荐文章