如何将TextBox(VIEW)的Text属性绑定到变量(在VIEWMODEL中)

时间:2019-11-01 07:01:29

标签: wpf mvvm

我是WPF的新手。我正在探索WPF应用程序的MVVM模式。我在将 TextBox Text 属性从VIEW绑定到 VIEWMODEL

中的变量时遇到问题

这里是MainWindow.xaml的文本框

<TextBox x:Name="UsernameTxt" Grid.Row="4" materialDesign:HintAssist.Hint="Username"/>

我只需要知道如何将其Text属性绑定到类库中的ViewModel类 谢谢

1 个答案:

答案 0 :(得分:0)

我认为可以为这个非常笼统的问题提供一个非常笼统的答案。

如果问题更改了上下文,则很可能会删除此答案,但是无论如何都会如此。

您希望视图模型位于文本框的datacontext中。因为datacontext是从可视树继承的,所以这通常意味着您要将窗口的datacontext设置为viewmodel的实例。或者也许是您的文本框所在的用户控件,但是我们对您的应用程序一无所知,所以我们只介绍简单的情况。

您的选择是使用代码或xaml实例化视图模型。

如果您看这篇文章:

https://social.technet.microsoft.com/wiki/contents/articles/31915.wpf-mvvm-step-by-step-1.aspx

以xaml实例化。

请注意xmlns是

  xmlns:local="clr-namespace:wpf_MVVM_Step01"

这就是说,您会在标记的某些地方看到以“ local:”开头的标记,然后从该名称空间中获取该类。

要指向其他dll(类库),您需要告诉它哪个程序集。您可以通过将; assembly = Whicheverdll添加到该xmlns的等价物中来实现。当然,那不是本地的,所以给它起一个不同的名字。您还需要对添加到入口点exe的dll或项目的引用。

完成所有这些操作并将ViewModel实例化到内存中后,在该文本框的数据上下文中,您需要某种绑定。

本文涵盖的内容将是这样的:

  <TextBox Text="{Binding YourPublicStringProperty}"/>