Wpf 粘贴到DataGridTemplateColumn时出现奇怪的错误
我有一个Wpf 粘贴到DataGridTemplateColumn时出现奇怪的错误,wpf,visual-studio-2010,datagrid,user-controls,copy-paste,Wpf,Visual Studio 2010,Datagrid,User Controls,Copy Paste,我有一个DataGridTemplateColumn而不是一个UserControl: <DataGridTemplateColumn Header="Projection" SortMemberPath="SelectedItem" ClipboardContentBinding="{Binding ProjectionMethod.Value, Mode=T
DataGridTemplateColumn
而不是一个UserControl
:
<DataGridTemplateColumn Header="Projection"
SortMemberPath="SelectedItem"
ClipboardContentBinding="{Binding ProjectionMethod.Value, Mode=TwoWay}"
>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<local:DataGridComboBoxCellControl DataContext="{Binding}"
SelectedItem="{Binding ProjectionMethod.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding ProjectionMethodsTextWrapper, Mode=OneWay}"
ErrorMessage="{Binding ProjectionMethod.ErrorMessage, Mode=OneWay}">
</local:DataGridComboBoxCellControl>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
更新
我现在已经尝试完全摆脱了
UserControl
,并将其xaml代码直接转储到TemplateColumn
的DataTemplate
中,这或多或少是一个问题。从视觉上看,粘贴似乎已执行,但从未调用ProjectionMethod.Value
的setter,因此从未更新viewmodel。我正在使用粘贴CellClipboardContent的命令进行粘贴。我想我找到了答案。我将剪贴板粘贴的更新触发器设置为PropertyChanged
:
ClipboardContentBinding="{Binding ProjectionMethod.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
现在,粘贴时会立即提交该值。我不知道默认行为应该是什么,但在粘贴值从未提交之前,甚至在行离开之后。仍然不确定调用用户控件的构造函数的原因。发布用户控件的完整代码和XAML。顺便说一句,如果你的用户控件是不可重用的,那么一开始就有一个用户控件似乎不是一个好主意。和DataContext=“{Binding}”
是多余的。@HighCore xaml已发布,抱歉延迟。是的,我希望在多个窗口中重用此代码,所以我猜UserControl
是一种方法。有点认为DataContext=“{Binding}”
行也是多余的,但我尝试了一切:)
ClipboardContentBinding="{Binding ProjectionMethod.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"