셀/celledit 템플릿을 공유하기 위해 DataGrid 열을 원합니다.wpftoolkit DataGridTemplateColumn 템플릿 바인딩
해결책이 있습니다 (덕분에 WPF DataGridTemplateColumn shared template?). 이제 모든 노드 중첩을 피함으로써 가독성을 향상시키고 싶습니다.
내 현재보기는 다음과 같습니다
<wpftk:DataGrid ItemsSource="{Binding Tests}" AutoGenerateColumns="False">
<wpftk:DataGrid.Resources>
<DataTemplate x:Key="CustomCellTemplate">
<TextBlock Text="{TemplateBinding Content}"/>
</DataTemplate>
<DataTemplate x:Key="CustomCellEditingTemplate">
<TextBox Text="{TemplateBinding Content}"></TextBox>
</DataTemplate>
</wpftk:DataGrid.Resources>
<wpftk:DataGrid.Columns>
<wpftk:DataGridTemplateColumn Header="Start Date">
<wpftk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ContentPresenter ContentTemplate="{StaticResource CustomCellTemplate}" Content="{Binding StartDate}"/>
</DataTemplate>
</wpftk:DataGridTemplateColumn.CellTemplate>
<wpftk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ContentPresenter ContentTemplate="{StaticResource CustomCellEditingTemplate}" Content="{Binding StartDate}"/>
</DataTemplate>
</wpftk:DataGridTemplateColumn.CellEditingTemplate>
</wpftk:DataGridTemplateColumn>
<!--and again the whole block above for each columns...-->
</wpftk:DataGrid.Columns>
</wpftk:DataGrid>
는 내가 달성하고자하는 것은 DataGridTemplateColumn
수준에서 값을 바인딩하고 템플릿 수준으로 전파하는 것입니다. 누구든지 그 일을 어떻게 알아? 바인딩 porperty가 DataGridTemplateColumn
의 유효한 재산이 아니라 어쩌면 데이터 컨텍스트 및 일부 상대 소스를 재생하여 솔직히 트릭을 할 수도 있지만 분명히
<wpftk:DataGrid ItemsSource="{Binding Tests}" AutoGenerateColumns="False">
<wpftk:DataGrid.Resources>
<DataTemplate x:Key="CustomCellTemplate">
<TextBlock Text="{Binding}"/>
</DataTemplate>
<DataTemplate x:Key="CustomCellEditingTemplate">
<TextBox Text="{Binding}"></TextBox>
</DataTemplate>
</wpftk:DataGrid.Resources>
<wpftk:DataGrid.Columns>
<wpftk:DataGridTemplateColumn Header="Start Date" Binding="{Binding StartDate}" CellTemplate="{StaticResource CustomCellTemplate}" CellEditingTemplate="{StaticResource CustomCellEditingTemplate}"/>
<wpftk:DataGridTemplateColumn Header="End Date" Binding="{Binding EndDate}" CellTemplate="{StaticResource CustomCellTemplate}" CellEditingTemplate="{StaticResource CustomCellEditingTemplate}"/>
</wpftk:DataGrid.Columns>
</wpftk:DataGrid>
: 내가해야 할 노력은 무엇
은 같은 것입니다 나는 그것을 구현할 방법을 찾을 수 없다. 내가 원하는 것은 가능하며 내가 대답
참고으로 "당신이 그렇게 할 수있는 방법을"받아 들일 기꺼이 경우
는 확실하지 : 템플릿의 TextBlock
/TextBox
단지 테스트입니다 DataGridTextColumn
는 속성 구문을 사용하여 DataTemplates
를 지정하여 XAML
감소 당신이 일을해야 했어요 어떤 사전
잘 모르겠다. 내 문제는 DataGridTemplateColumn에서 직접 실제 데이터를 바인딩하는 방법을 모르지만 바인딩은 DataGridTemplateColumn의 속성이 아닙니다. 편집 템플릿과 일반 템플릿을 바인딩 할 수 있지만 데이터를 템플릿에 바인딩하는 방법을 모르겠습니다. 내 생각 엔 내가 원하는 데이터로 템플릿의 DataContext를 설정하는 것입니다.하지만 그 작업을 수행하는 방법을 모릅니다. – Guillaume
원래 질문에 더 잘 대답하도록 수정 된 답변입니다. – Dennis
좋아요! 내가 뭘 찾고 있었는지 – Guillaume