0

我想使用 DataGridevents(DataGridBeginningEdit、DataGridCellEditEnding、..etc)来处理和检测更改。据我了解,没有“CellTemplate”,这些都不会被触发。所以我正在尝试使用 TextBlock 创建一个适当的单元格模板,但我想我在 CellEditingTemplate 中用于 Combobox 的绑定不是很简单,因为我使用的是“DisplayMemberPath”..

有一些更简单的例子,但我找不到这种情况。请参阅下面的 Xaml 片段;

<data:DataGridTemplateColumn Width="100">
                                    <data:DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock HorizontalAlignment="Center" />
                                        </DataTemplate>
                                    </data:DataGridTemplateColumn.CellTemplate>
                                    <data:DataGridTemplateColumn.CellEditingTemplate>
                                        <DataTemplate>
                                            <ComboBox HorizontalAlignment="Stretch"
                                                        ItemsSource="{Binding DurationTypeList, Source={StaticResource itemSourceProvider}}"
                                                        SelectedValuePath="Code"
                                                        SelectedValue="{Binding Path=DurationTypeCode, Mode=TwoWay}" 
                                                        DisplayMemberPath="Template"  />
                                        </DataTemplate>
                                    </data:DataGridTemplateColumn.CellEditingTemplate>
                                </data:DataGridTemplateColumn>

谢谢

4

1 回答 1

0

事实证明,我有两个选择..

解决方案#1

<data:DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock HorizontalAlignment="Left" Text="{Binding Path=DurationType.Template,  Mode=OneWay}"  />
                                        </DataTemplate>
                                    </data:DataGridTemplateColumn.CellTemplate>
                                    <data:DataGridTemplateColumn.CellEditingTemplate>
                                        <DataTemplate>
                                            <ComboBox HorizontalAlignment="Stretch"
                                                        ItemsSource="{Binding DurationTypeList, Source={StaticResource itemSourceProvider}}"
                                                        SelectedValuePath="Code"
                                                        SelectedValue="{Binding Path=DurationType, Mode=TwoWay}" 
                                                        DisplayMemberPath="Template"  />
                                        </DataTemplate>
                                    </data:DataGridTemplateColumn.CellEditingTemplate>

我将绑定路径从字符串更改为具有代码和模板属性的对象..

这个博客帮助很大。。

于 2011-07-22T10:01:52.603 回答