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
.net 使用UserControl的混淆_.net_Wpf_Mvvm_User Controls - Fatal编程技术网

.net 使用UserControl的混淆

.net 使用UserControl的混淆,.net,wpf,mvvm,user-controls,.net,Wpf,Mvvm,User Controls,我已经应用了wpf mvvm和viewmodelocator 我希望我能创建一个通用的usercontrol来执行crud 这个用户控件,可以在多个视图中使用 我的视图xaml(Articoli窗口): 例如: 查看Articoli: 查看客户端: 我的示例代码源: Crudusercontrol(我的usercontrol)不知道视图的模型及其所有更改。 我该怎么办? 或者还有其他的方法???解药!如果我没有正确理解这个问题,您必须原谅我,但您似乎正在尝试将当前视图模型传递到一个save命

我已经应用了wpf mvvm和viewmodelocator

我希望我能创建一个通用的usercontrol来执行crud

这个用户控件,可以在多个视图中使用

我的视图xaml(Articoli窗口):

例如: 查看Articoli:

查看客户端:

我的示例代码源:

Crudusercontrol(我的usercontrol)不知道视图的模型及其所有更改。 我该怎么办?
或者还有其他的方法???

解药!如果我没有正确理解这个问题,您必须原谅我,但您似乎正在尝试将当前视图模型传递到一个save命令处理程序中。您在这里发布的代码只有一个按钮,但您发布的演示代码有两个按钮,因此我将向您展示如何为每个按钮执行此操作。这两种情况都可以通过通过CommandParameter传入视图模型来实现,在第一种情况下,请执行以下操作:

<Button Content="Salva con UserControl" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="148" Command="{Binding SalvaCommand}" CommandParameter="{Binding}"/>
<Button Content="Salva Senza UserControl" HorizontalAlignment="Left" Margin="319,224,0,0" VerticalAlignment="Top" Width="164" Command="{Binding SalvaNormaleCommand}" CommandParameter="{Binding ArticoliModel}"/>

将使用类型为
CrudUserControlViewModel
的对象调用命令处理程序。在第二种情况下,请执行以下操作:

<Button Content="Salva con UserControl" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="148" Command="{Binding SalvaCommand}" CommandParameter="{Binding}"/>
<Button Content="Salva Senza UserControl" HorizontalAlignment="Left" Margin="319,224,0,0" VerticalAlignment="Top" Width="164" Command="{Binding SalvaNormaleCommand}" CommandParameter="{Binding ArticoliModel}"/>

命令处理程序将使用Articoli类型的对象调用

还有一件事,我注意到您正在调用OnPropertyChanged(),您实际上应该传入正在更新的属性的名称,即:

public string Descrizione
{
    get { return _descrizione; }
    set
    {
        _descrizione = value;
        OnPropertyChanged("Descrizione"); // <----- look here
    }
}
公共字符串描述
{
获取{return\u descripione;}
设置
{
_描述=价值;

OnPropertyChanged(“描述”);//虽然我知道英语不是你的第一语言,但你的问题中的文本目前很难理解。如果你想让别人回答你的问题,你能通过清楚地解释你的问题来改进它吗?你是对的,英语不是我的第一语言,现在我变了,我希望你能理解更好
<Button Content="Salva con UserControl" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="148" Command="{Binding SalvaCommand}" CommandParameter="{Binding}"/>
<Button Content="Salva Senza UserControl" HorizontalAlignment="Left" Margin="319,224,0,0" VerticalAlignment="Top" Width="164" Command="{Binding SalvaNormaleCommand}" CommandParameter="{Binding ArticoliModel}"/>
public string Descrizione
{
    get { return _descrizione; }
    set
    {
        _descrizione = value;
        OnPropertyChanged("Descrizione"); // <----- look here
    }
}