【问题标题】:Binding value from resource.resx to Header of DataGridTemplateColumn将值从 resource.resx 绑定到 DataGridTemplateColumn 的 Header
【发布时间】:2011-10-27 08:47:57
【问题描述】:

我收到一个错误:

Cannot find a Resource with the Name/Key ResourceString [Line: 94 Position: 104]

在我的 xaml 中:

<data:DataGridTemplateColumn x:Name="PriorityColumn" CanUserSort="True" Header="{Binding columnHeader_PriorityColumn, Source={StaticResource ResourceString}}">

但我无法将资源中的元素绑定到 texblock

经过一番调查,我发现这是因为我只能将 Resource.resx 用于以下所列的控件:

http://msdn.microsoft.com/en-us/library/dd882554(v=vs.95).aspx

如果我有权利,还有其他方法可以绑定 DataGridTemplateColumn 的值吗?

【问题讨论】:

    标签: xaml data-binding silverlight-4.0 resources


    【解决方案1】:

    如果我理解正确,您需要从资源文件中绑定值。如果这是问题,那么您应该使用INotifyPropertyChanged 包装资源。尝试做这样的事情:

    public class ResourceWrapper : INotifyPropertyChanged
    {
            private static readonly Resource resourceHelper = new Resource();
    
            public Resource ResourceHelper
            {
                get { return resourceHelper; }
                set { NotifyChange("ResourceHelper"); }
            }
    
            public event PropertyChangedEventHandler PropertyChanged;
    
            private void NotifyChange(String name)
            {
                if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(name));
            }
        }
    

    在 xaml 中执行以下操作:

    ...
        <UserControl.Resources>
            <helper:ResourceWrapper x:Name="ResourceString" />
        </UserControl.Resources>
    ...
    

    最后

    <data:DataGridTemplateColumn x:Name="PriorityColumn" CanUserSort="True" Header="{Binding ResourceHelper.NeededString, Source={StaticResource ResourceString}}">
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2011-04-06
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2017-01-16
      • 1970-01-01
      • 2019-05-09
      相关资源
      最近更新 更多