2013-05-23 2 views
0

여기 내 뷰 모델 클래스입니다 내가 노력하고있어바인딩 동적 데이터 그리드 열

<DataGrid t:DataGridColumns.DisplayColumns="{Binding Columns}" ItemsSource="{Binding Rows}" AutoGenerateColumns="False"> 
    <t:DataGridColumns.ColumnSettingsTemplate> 
     <DataTemplate> 
      <t:DataGridColumnSettings ColumnBindingPath="{Binding BindingPropName}"> 
       <t:DataGridColumnSettings.Header> 
         <TextBlock Text="{Binding Header}"/> 
       </t:DataGridColumnSettings.Header> 
      </t:DataGridColumnSettings> 
     </DataTemplate> 
    </t:DataGridColumns.ColumnSettingsTemplate> 
</DataGrid> 

모든 달성은 CellTemplate를 추가하는 것입니다 :

<DataGrid t:DataGridColumns.DisplayColumns="{Binding Columns}" ItemsSource="{Binding Rows}" AutoGenerateColumns="False"> 
    <t:DataGridColumns.ColumnSettingsTemplate> 
     <DataTemplate> 
      <t:DataGridColumnSettings ColumnBindingPath="{Binding BindingPropName}"> 
      <t:DataGridColumnSettings.Header> 
       <TextBlock Text="{Binding Header}"/> 
      </t:DataGridColumnSettings.Header> 
      <t:DataGridColumnSettings.CellTemplate> 
       <TextBlock Text="{Binding ColumnBindingPath}"/> 
      </t:DataGridColumnSettings.CellTemplate> 
      </t:DataGridColumnSettings> 
     </DataTemplate> 
    </t:DataGridColumns.ColumnSettingsTemplate> 
</DataGrid> 

가장 쉬운 방법은 하나 이상의 종속성 속성을 추가하여 셀 템플릿을 사용하는 것입니다. 그런 다음이 존재하는 경우 DataGridTextColumn 대신 DataGridTextColumn을 DataGrid를 채울 때 만들지 만 ColumnBindingPath 종속성 속성에 내 CellTemplate TextBlock을 바인딩 할 때 약간 문제가 있습니다. 것 연결된 속성에 바인딩 ...

답변

0

구문을 도와주세요 :

<TextBlock Text="{Binding Path=(t.DataGridColumns.ColumnBindingPath)}"/> 

Path= 필요가 명시 적으로 기록 될 연결된 속성에 바인딩 할 때. 이것은 WPF 4.5에서 수정되었습니다, 그래서 당신은 여전히 ​​재산의 주위에 괄호가 필요하다고는,

<TextBlock Text="{Binding (t.DataGridColumns.ColumnBindingPath)}"/> 

노트를 작성하기에 충분할 수있다. 이 질문에 이미 대답합니까?

+0

작동하지 않습니다. System.Windows.Markup.XamlParseException을 발생시킵니다. Message = 'System.Windows.Baml2006.TypeConverterMarkupExtension'에 값을 입력하십시오. – user2398652

+0

대신