Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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
C# 如何将viewModel绑定到视图_C#_Wpf_Xaml_Mvvm_Listbox - Fatal编程技术网

C# 如何将viewModel绑定到视图

C# 如何将viewModel绑定到视图,c#,wpf,xaml,mvvm,listbox,C#,Wpf,Xaml,Mvvm,Listbox,我已经在主窗口中创建了WPF代码,现在我想使用MVVM。 我已将所有数据从主窗口的xaml复制到用户控件,并在上创建了新类 包含xaml.cs类中代码的视图模型文件夹 在用户控件类中,我添加了 public UserControl() { InitializeComponent(); this.DataContext = new ModelView(); } 目前有两个问题 1.在主窗口中,我引用了如下所示的ListBox,现在

我已经在主窗口中创建了WPF代码,现在我想使用MVVM。 我已将所有数据从主窗口的xaml复制到用户控件,并在上创建了新类 包含xaml.cs类中代码的视图模型文件夹

在用户控件类中,我添加了

public UserControl()
        {
            InitializeComponent();
     this.DataContext = new ModelView();
        }
目前有两个问题

1.在主窗口中,我引用了如下所示的ListBox,现在可能用户控件不知道它,我应该如何解决它

列表框上的错误是“无法在静态上下文中访问非静态属性项源”。

例如,这里我在:ListBox.ItemsSource=\u users列表上有错误

class ModelView
    {       
          public ObservableCollection<User> _UsersList = new ObservableCollection<User>();


        public ObservableCollection<User> UserList
        {
            get { return _UsersList; }
        }

        public void initUsers()
        {
            _UsersList.Add(new User {Name = "Mike"});
            _UsersList.Add(new User {Name = "Jhon"});


            ListBox.ItemsSource = _UsersList;
        }
类模型视图
{       
public observeCollection_UsersList=new observeCollection();
公共ObservableCollection用户列表
{
获取{return\u UsersList;}
}
公共用户()
{
_添加(新用户{Name=“Mike”});
_添加(新用户{Name=“Jhon”});
ListBox.ItemsSource=\u UsersList;
}
2.此外,在视图模型中,我从主窗口类方法复制了一些代码 DropText_PreviewDragEnter在Previ中引用,下面的ewDragEnter在XAML中引用 现在有了错误,我该如何避免呢

    <TextBox x:Name="FullName"  
              AcceptsReturn="True"
              AllowDrop="True" 
              PreviewDragEnter="DropText_PreviewDragEnter"


              HorizontalAlignment="Left" Height="20" Margin="360,70,0,0" TextWrapping="Wrap" Text="" 
              VerticalAlignment="Top" Width="70"/>

关于#1,您引用的是类列表框,而不是该类的实例。这类似于执行以下操作:

string=“a”

您应该在xaml中编写一个列表框,在该列表框中,您将把它的ItemSource属性绑定到视图模型中的UserList属性中

我建议您在internet上找到一个绑定列表框以查看该概念的示例

关于#2,不清楚您收到的错误是什么,但请确保您在xaml的代码背后实现了DropText#u PreviewDragEnter方法。

关于#1,您引用的是类列表框,而不是该类的实例。这类似于执行以下操作:

string=“a”

您应该在xaml中编写一个列表框,在该列表框中,您将把它的ItemSource属性绑定到视图模型中的UserList属性中

我建议您在internet上找到一个绑定列表框以查看该概念的示例

关于#2,不清楚您收到的错误是什么,但请确保您在xaml的代码背后实现了DropText#u PreviewDragEnter方法。

关于#1,您引用的是类列表框,而不是该类的实例。这类似于执行以下操作:

string=“a”

您应该在xaml中编写一个列表框,在该列表框中,您将把它的ItemSource属性绑定到视图模型中的UserList属性中

我建议您在internet上找到一个绑定列表框以查看该概念的示例

关于#2,不清楚您收到的错误是什么,但请确保您在xaml的代码背后实现了DropText#u PreviewDragEnter方法。

关于#1,您引用的是类列表框,而不是该类的实例。这类似于执行以下操作:

string=“a”

您应该在xaml中编写一个列表框,在该列表框中,您将把它的ItemSource属性绑定到视图模型中的UserList属性中

我建议您在internet上找到一个绑定列表框以查看该概念的示例


关于#2,不清楚您收到的错误是什么,但请确保您在xaml的代码隐藏中实现了DropText_PreviewDragEnter方法。

首先,您将ItemsSource设置在错误的位置-您需要在UserControl的xaml页面中设置ItemsSource

<ListBox ItemsSource="{Binding _UsersList}"

首先,您在错误的位置设置了ItemsSource-您需要在UserControl的xaml页面中设置ItemsSource

<ListBox ItemsSource="{Binding _UsersList}"

首先,您在错误的位置设置了ItemsSource-您需要在UserControl的xaml页面中设置ItemsSource

<ListBox ItemsSource="{Binding _UsersList}"

首先,您在错误的位置设置了ItemsSource-您需要在UserControl的xaml页面中设置ItemsSource

<ListBox ItemsSource="{Binding _UsersList}"

一团糟。你根本没有正确使用MVVM,你没有绑定,你不理解静态属性和实例属性之间的区别。这里发生的事情太多了。一团糟。你根本没有正确使用MVVM,你没有绑定,你不理解静态属性和实例属性之间的区别。有这里发生的事情太多了。一团糟。你根本没有正确地使用MVVM,你没有绑定,你不理解静态和实例属性之间的区别。这里发生的事情太多了。一团糟。你根本没有正确地使用MVVM,你没有绑定,你不理解静态和实例属性之间的区别这里发生的事情太多了。