2014-10-05 2 views
0

C# 및 .NET Framework 4.5.1을 사용하여 Windows 8.1 Store 앱을 개발 중입니다. ViewModel에 뷰 컨트롤 넣기

은 내가 뷰 모델에 Password.SecurePassword를 결합하려고, 나는 그것을 할 수있는 방법을 발견이 SO answer을 읽고 있어요 : 넣어 PasswordBox을 내 ViewModel에.

하지만 어떻게해야할지 모르겠다. Dependency Properties를 바인딩하는 방법을 알고 있지만 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> 

무엇을해야합니까?

+0

당신이 연결하는 포스트는'PassWord' (그것은 DP가 아닙니다)와 해결책을위한 특정 문제를 구체화합니다. 그것보다 쉽지는 않을 것입니다. –

+0

어쩌면 해당 게시물이 도움이 될 것입니다 http://stackoverflow.com/questions/1483892/how-to-bind-to-a-passwordbox-in-mvvm –

답변

0

몇 가지 옵션이 있지만 제 3 자 라이브러리없이 기본 옵션 만 제공합니다.

Page 생성자에 있습니다. 이런 식으로 할 수 있습니다.

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

또한 그것은 ViewLoaded 이벤트를 설정하고 PasswordBox뷰 모델에 설정할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 여기, http://stackoverflow.com/a/4649830/68571, 나는 그것을하는 방법을 발견했다. 감사. – VansFannel

+0

@VansFannel 'PasswordBox'를 ViewModel에 전달하기 위해'CommandParameters'를 사용하려는 경우. Attach/Dettach에서'Behaviors'를 사용하여'ViewModel'에 전달합니다. 나는 그것을 더 깨끗하고 읽기 쉽다고 생각한다. –

관련 문제