我想要我的datagrid列共享单元/ celledit模板。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
水平结合,并将其传播到模板的水平。任何人都知道如何做到这一点?
我试图做的是类似的东西:
<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>
显然绑定porperty不是DataGridTemplateColumn
的有效属性,但也许用在DataContext和一些相对源播放可以做的伎俩,但坦率地说我无法找到实现这一点的方法。
不知道如果我想是可能的,我愿意接受一个“没有办法,你可以做到这一点”作为回答
注意:模板中的TextBlock
/TextBox
只是为了测试(真正的模板要复杂得多)DataGridTextColumn
不会做的伎俩 在此先感谢
不知道我跟着你,我的问题是,我不知道如何直接从DataGridTemplateColumn绑定实际数据,绑定不是DataGridTemplateColumn的属性。我可以绑定编辑模板和普通模板,但我不知道如何将数据绑定到模板。我的猜测是用我想要的数据设置模板的DataContext,但我不知道该怎么做 – Guillaume 2012-03-23 10:12:15
编辑答案以更好地回答您的原始问题。 – Dennis 2012-03-23 11:45:41
太棒了!那是我在找的东西 – Guillaume 2012-03-23 11:56:14