更新xaml.cs文件中的视图模型,在mvvm中添加一些逻辑



我使用mvvm为我的应用程序,我使用绑定来绑定项目和自动更改,当有一些变化在我的视图,但在某些情况下,我想添加一些逻辑,然后将其发送到视图模型。例如:

private string _children;
public string Children
{
get
{
return _children;
}
set
{
_children= value;
OnPropertyChanged(nameof(Children));
}
}

And my view:

<TextBox Name="Child"></TextBox>
<Button Content="Add" Click="Add_Children"/>
<ListView Name="ChildrenList">
</ListView>
private string children
private void Add_Children(object sender, RoutedEventArgs e)
{
string name = Child.Text;
ChildrenList.Items.Add(name);
children += name;
}

我想发送孩子字段到我的视图模型,但我不能,因为我没有任何访问视图模型在xaml.cs文件

这个例子不是我真正的问题。在这种情况下,我可以使用列表而不是字符串,但是我只是想问一个一般性的问题。

这不是在MVVM中实现此目的的最佳方式,但您可以这样访问ViewModel:

在你的xaml.cs文件中:

声明变量YourViewModel vm;

将此声明添加到构造函数中this.Loaded += new RoutedEventHandler(OnLoaded);

创建这个方法

public void OnLoaded(object sender, RoutedEventArgs e)
{
vm = this.DataContext as TableDrawingsViewModel;
}

然后通过this.vm

访问ViewModel实例

最新更新