Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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 MVVM Usercontrols是否可以在codebehind中定义属性?_Wpf_Mvvm_Properties_User Controls_Code Behind - Fatal编程技术网

Wpf MVVM Usercontrols是否可以在codebehind中定义属性?

Wpf MVVM Usercontrols是否可以在codebehind中定义属性?,wpf,mvvm,properties,user-controls,code-behind,Wpf,Mvvm,Properties,User Controls,Code Behind,我有一个WPF用户控件…在MVVM中。用户控件(包含listview)需要来自页面(包含它的地方)的数据。我必须设置一个属性来获取此数据输入。这符合MVVM吗?如果不符合,那么相同的方法是什么?我担心这在MVVM设计模式中是不正确的。尝试使用视图模型来定义属性。为什么不考虑将该属性移动到控件的VM?< P>使用 observetecollection myOC=新的observetecollection() 其中,myModel是一个必须构造的类,用于将数据表中的列转换为属性 在MainView

我有一个WPF用户控件…在MVVM中。用户控件(包含listview)需要来自页面(包含它的地方)的数据。我必须设置一个属性来获取此数据输入。这符合MVVM吗?如果不符合,那么相同的方法是什么?

我担心这在MVVM设计模式中是不正确的。尝试使用视图模型来定义属性。为什么不考虑将该属性移动到控件的VM?

< P>使用<代码>
observetecollection myOC=新的observetecollection()

其中,
myModel
是一个必须构造的类,用于将数据表中的列转换为属性

在MainViewModel中,通过DataReader循环并从中创建
myOC

现在将myOC
绑定到页面中的列表视图

ListView的DataTemplate应该是一个视图(UserControl),它从由
myModel


但是你的用户控件里面有整个ListView。如果这是故意的,那么请让我知道整个设计,以便给出更好的想法。

如果我在视图模型(而不是视图)中有属性…如何从页面设置其值..我在哪里使用此usercontrol?您是否正确绑定了它?例如:嗨,Justyna,我会向你解释我的问题。。。在mvvm之后,我在wpf中创建了一个用户控件。在我看来,我有一个网格视图。当我在页面中使用我的用户控件时…我必须将一个数据集(在我的页面中可用)分配给usercontrol中可用的gridview。。。我如何设置它?。。。我想在视图的.cs文件中定义一个属性,并从我的页面为其分配一个数据集。但我想知道它是否符合mvvm:(如果您的数据集是在页面的VM中定义的,则用户控件的VM必须能够访问它-您必须自己解决它。在我看来,您不应该将数据集绑定到控件,而应该将该数据集的数据源绑定到控件。您可以通过将数据源作为构造函数参数传递给用户控件来使其可用。还有一件事-如果你开始给答案打分,你将大大提高视图的数量。我在不同的页面中使用用户控件-意味着我将为不同的页面使用不同的datatable…因此用它创建OC很困难,因为我们需要一个类“myModel”与我们一起。我面临的主要问题是如何在用户控件中访问页面的数据。@Anish:您的每个用户控件都包括什么?我不明白您的意思:(无论如何,我只有一个用户控件…它有2个GridView和4个按钮(add/add all/remove/remove all)…此用户控件用于从一个gridview向另一个gridview添加/删除一些数据。在这种情况下,我认为最好如您所说为UserControl创建两个属性。它将符合MVVM。