【问题标题】:How can I bind Text property of TextBox (VIEW) to a vaiable (in VIEWMODEL)如何将 TextBox(VIEW)的 Text 属性绑定到变量(在 VIEWMODEL 中)
【发布时间】:2019-11-01 07:01:29
【问题描述】:

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

中的变量时遇到问题

这是来自MainWindow.xaml的文本框

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

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

【问题讨论】:

    标签: wpf mvvm


    【解决方案1】:

    我认为可以对这个非常笼统的问题给出一个非常笼统的答案。

    如果问题改变了上下文,这个答案很可能会被删除,但无论如何都会这样。

    您希望您的视图模型位于文本框的数据上下文中。因为 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 或项目的引用。

    一旦你完成了所有这些并且你的视图模型被实例化到内存中并且在那个文本框的数据上下文中你需要某种绑定。

    文章涵盖的内容如下:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 2011-04-29
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      相关资源
      最近更新 更多