2010-03-19 5 views
1

일부 모델의 데이터가 포함 된 클래스가 있습니다. 이 클래스에는 실제 값과 함께 메타 데이터가 있습니다.WPF Datagrid에서 복잡한 유형의 DataTable에 바인딩

class ServerValue { 

    public int SomeId {get;} 
    public int SomeOtherId {get;} 
    public DateTime LastChanged {get;} 

    public object Value {get;set;} 

    // this lets me show the value, but how do i update it from the grid? 
    public override string ToString(){ 
     return Value.ToString(); 
    } 
} 

이제 모든 종류의 논리를 가진 DataTable에서 파생되는 MyDataTable 클래스도 있습니다. 서버를 호출하고, ServerValues를 한꺼번에 가져 와서 Rows and Columns에 넣습니다.

마지막으로 DataGrid에서 각 ServerValue의 ToString을 호출하고 표시 값을 가져 오기 때문에 MyDataTable에 바인딩하는 WPF DataGrid가 있고 데이터가 표시됩니다. 지금까지 만세.

이제 두 가지 방식으로 데이터 바인딩을 수행하므로 그리드의 입력이 ServerValue에 다시 기록됩니다. 그래서 표 셀을 ServerValue 자체의 값 대신 ServerValue의 Value 속성에 바인딩하려고합니다.

지금 DataGrid 셀의 ServerValue는 문자열로 바뀝니다. 나는이 모든 것을 해결할 수 있지만 먼저 우아한 길을 시도해 볼 것입니다.

그래서 나는 데이터 형식이 셀에 복잡한 유형이 있고 그 유형의 특정 속성에 양방향 데이터 바인딩을 원합니다.

이것이 가능합니까? 나는 이것에 관해 인터넷 검색을하고 있었고 이것에 대해서는 아무 것도 할 수 없다. 사전에

감사합니다,

답변

1

당신이 원하는 것은 자신의 텍스트 reprenstations에 개체에서 앞뒤로 변환하는 방법입니다.

은 와우가 빨랐다 당신이

http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

+0

바인딩에 대한 변환기를 정의! 유망 해 보이는데, 지금 그것에 대해 들여다 보아라. 감사! – gjvdkamp

+0

안녕하세요, 저는 변환기와 모두를 가지고 있지만 그리드에 의해 사용되지 않습니다, 그것은 여전히 ​​삽입 된 클래스의 유형을 표시합니다. < "{바인딩 변환기 = {정적 리소스 TesterConverter}}"ItemsSource = 데이터 그리드 이름 = "SomeGrid"AutoGenerateColumns = "진정한"/> 당신이 올바른 구문을 알고 있습니까 :이 내가 컨버터를 연결하는 방법입니다? 변환기 예제를 보았지만 모두 데이터 템플릿 등이 있습니다. 미리 감사드립니다. John – gjvdkamp

+0

지금 필요한 것은 Datagrid가있는 XAML 샘플입니다. –

관련 문제