我想要我的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