2011-10-27 2 views
0

의 헤더에바인딩 값은 내가 오류가 DataGridTemplateColumn

<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의 값 헤더를 바인딩하는 다른 방법이 있습니까?

답변

0

올바르게 이해하면 리소스 파일의 값을 바인딩해야합니다. 이것이 질문 인 경우 INotifyPropertyChanged으로 Resource를 래핑해야합니다. 이런 식으로 뭔가를 시도 :

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

마지막

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

가 당신을 도울 것입니다 희망 : XAML에서

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)); 
     } 
    } 

가 그런 짓을.