gpt4 book ai didi

c# - 如何将 viewModel 绑定(bind)到 View

转载 作者:行者123 更新时间:2023-12-03 10:59:35 26 4
gpt4 key购买 nike

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

在我添加的用户控件类中

public UserControl()
{
InitializeComponent();
this.DataContext = new ModelView();
}

目前有两个问题

1.在主窗口中我指的是ListBox,如下图,现在用户控件可能不知道,应该怎么解决?

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

例如,这里有错误: ListBox.ItemsSource = _UsersList;
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;
}

2.另外在 View 模型中,我从主窗口中复制了一些代码,如方法
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,您指的是 ListBox 类,而不是该类的实例。它类似于做类似的事情:

字符串 = “一个”。

您应该做的是在您的 xaml 中编写一个 ListBox,您将在其中将它的 ItemSource 属性绑定(bind)到 View 模型中的 UserList 属性。

我建议你在互联网上找到一个绑定(bind)列表框以查看概念的示例。

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

关于c# - 如何将 viewModel 绑定(bind)到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20958963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com