C# 如何将viewModel绑定到视图
我已经在主窗口中创建了WPF代码,现在我想使用MVVM。 我已将所有数据从主窗口的xaml复制到用户控件,并在上创建了新类 包含xaml.cs类中代码的视图模型文件夹 在用户控件类中,我添加了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,现在
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,你没有绑定,你不理解静态和实例属性之间的区别这里发生的事情太多了。