2017-10-10 1 views
0

저는 Enum int 값을 datagridtextboxcolumn에 바인드하고 싶습니다. 내가 여기에 내가 열거 값, 즉 바인딩 할 enum의 정수 값을 wpf의 datagridtextcolumn에 바인딩하는 방법

<DataGridComboBoxColumn Header="Value" ItemsSource="{Binding Source={StaticResource GetEnumValues}, UpdateSourceTrigger=PropertyChanged}" Width="100" 
      SelectedItemBinding ="{Binding Enm_Purchase_Rets, Mode=TwoWay}" /> 


      <DataGridTextColumn Binding="{Binding xxx}" Header="Enum Id" Width="80" /> 

XAML 에서

public enum Enm_Purchase_Ret : short 
{ 
    Purchase = 1, 
    Sale = 2, 
    Return = 3 
} 


public class Vm_Purchase : INotifyPropertyChanged 
{ 
    private Enumitem EnumItem = new Enumitem { Enm_Purchase_Rets = Enm_Purchase_Ret.Purchase }; 
    public Vm_Purchase() 
    { 

    } 
    public class Enumitem 
    { 
     public Enm_Purchase_Ret Enm_Purchase_Rets { get; set; } 

    } 

    public Enumitem TestenumClass 
    { 
     get { return this.EnumItem; } 
    } 
    public event PropertyChangedEventHandler PropertyChanged; 
    private void NotifyPropertyChanged([CallerMemberName] string PropertyName = "") 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new 
      PropertyChangedEventArgs(PropertyName)); 
     } 
    } 
} 

아래 코드를 사용합니다. 1,2,3 등 xxx posotion에

내가별로 wpf 전문가가 아니므로 바인딩하는 방법을 도와주세요.

감사합니다.

답변

0

DataGridTextColumn은 ToString() 메서드 호출의 결과를 표시합니다. 형식 "D"의 ToString을 사용하여 열거 형의 숫자 ​​값을 가져올 수 있습니다. 있는 StringFormat 추가 바인딩과 같은 결과를 얻으려면 :이

Binding="{Binding Path=Enm_Purchase_Rets, StringFormat='\{0:D\}'}" 
+0

을 "{ 출처 = {정적 리소스의 GetEnumValues을}, 바인딩 UpdateSourceTrigger =하여 PropertyChanged}"SelectedValuePath = " {Binding Path = Enm_Purchase_Rets, StringFormat = '\ {0 : D \}'} " 너비 ="100 "SelectedItemBinding ="{바인딩 Enm_Purchase_Rets, 모드 = TwoWay} "/>

+0

그러나 DataGridTextColumn에 값을 가져 오지 않습니다. –

+0

@babucr, 귀하의보기 모델에 대한 자세한 정보를 제공하십시오. 내 제안은 모든 enum 속성에 대해 작동해야합니다. ** Path는보기 모델에서 속성의 올바른 이름 **을 사용합니다. DataContext 및 DataGrid의 ItemsSource 란 무엇입니까? DataGridTextColumn은 StringFormat없이 열거 형 이름/아무것도 표시합니까? (그렇지 않은 경우 - 잘못된 바인딩 경로 임) – ASh

관련 문제