Значение привязки из resource.resx к заголовку DataGridTemplateColumn - PullRequest
0 голосов
/ 27 октября 2011

Я получаю ошибку:

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}}">

Но я не могу связать элемент из ресурса в текстовый блок

После некоторого исследования я понял, что это потому, что я могу использовать только Resource.resx для элементов управления, перечисленных в:

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

Так что, если у меня есть право, есть ли другой способ привязать значение, сделать заголовок DataGridTemplateColumn?

1 Ответ

0 голосов
/ 27 октября 2011

Если я правильно понимаю, вам нужно привязать значение из файла ресурсов.Если это вопрос, вам следует обернуть Resource 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}}">

Надеюсь, это поможет вам.

...