将View Control放在其ViewModel中

时间:2014-10-05 08:06:50

标签: c# mvvm windows-runtime

我正在使用C#和.Net Framework 4.5.1开发Windows 8.1 Store应用程序。

我尝试将Password.SecurePassword绑定到ViewModel,并阅读此SO answer我找到了一种方法:将PasswordBox放入我的ViewModel。< / p>

但我不知道该怎么做。我知道如何绑定依赖属性,但我不知道如何将该控件放在我的ViewModel上。这是我的XAML:

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    DataContext="{Binding MainViewModel, Source={StaticResource Locator}}"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <PasswordBox x:Name="userPassword" />
    </Grid>
</Page>

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您有多种选择,但我会在没有第三方库的情况下为您提供基本选项。

Page构造函数中。你可以这样做。

public Page()
{
  var mainViewModel = this.DataContext as MainViewModel;
  if(mainViewModel != null)
  {
    mainViewModel.PasswordBox = userPassword;
  }
}

您也可以在Loaded的{​​{1}}事件中进行设置,并将View设置为 ViewModel