Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 粘贴到DataGridTemplateColumn时出现奇怪的错误_Wpf_Visual Studio 2010_Datagrid_User Controls_Copy Paste - Fatal编程技术网

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}"