2013-03-12 2 views
1

RowDetails (텍스트 블록)가 표의 ItemSource 요소의 Details 문자열 속성에 바인딩되는 WPF Datagrid를 디자인하려고합니다. 트릭은WPF Datagrid - 선택적 속성에 RowDetails 바인딩?

<DataGrid.RowDetailsTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Details}" ..... 
      </DataTemplate> 
     </DataGrid.RowDetailsTemplate> 

, 그것은 바인더 제본 컬렉션의 요소의 경우 RowDetails 그냥 비어 있어야하는 Details 속성을 가지고하지 않을 수 있습니다 가능합니다. WPF가 런타임에 존재하지 않을 수도있는 속성에 대한 바인딩을 예외를 throw하지 않고도 가질 수있는 방법이 있습니까? (바인드 된 컬렉션의 항목은 모두 Details 속성을 갖거나 둘 다 포함되지 않습니다. 여러 객체 유형을 포함하는 컬렉션에 대해 이야기하는 것이 아닙니다.)

하나의 대답은 강제로 수행하는 것으로 가정합니다. 이 격자의 사용자는 항상 세부 정보 속성 (IDetails 인터페이스 또는 무엇이든)을 가진 객체를 제공하지만이 작업을 수행하지 않아도 좋을 것이라고 생각합니다. 그리드가 매우 유연한 객체를 원합니다. 디스플레이.

답변

1

주위를 둘러보고 난 후에 PriorityBindings가 발견되어 작업이 완료되었습니다. 여기서는 RowDetailsTemplate 내의 TextBlock에 바인딩하고 바인드 된 속성을 찾을 수없는 경우 빈 문자열로 설정합니다.

관련 문제