ユーザーがログインするためにユーザー名とパスワードを入力する必要があるアプリケーションを開発しています。
ビューをビューモデルから分離するために、MVVM ライト フレームワークを使用しています。今のところ、タップされたイベントが対応するビューモデルでキャッチされるボタンがビューにあります。
また、ユーザーが入力ボタンを押してログインできるようにしたいと思います。WPF ではボタンを IsDefault として設定できましたが、WinRT ではできないようです。
これどうやってするの?
ユーザーがログインするためにユーザー名とパスワードを入力する必要があるアプリケーションを開発しています。
ビューをビューモデルから分離するために、MVVM ライト フレームワークを使用しています。今のところ、タップされたイベントが対応するビューモデルでキャッチされるボタンがビューにあります。
また、ユーザーが入力ボタンを押してログインできるようにしたいと思います。WPF ではボタンを IsDefault として設定できましたが、WinRT ではできないようです。
これどうやってするの?
このコードをビューモデルに入れ、Enterキーが押されたかどうかを確認してから、キーが押されたら、ボタンが押された場合に起動するのと同じメソッドを起動することができると思います
Windows.UI.Xaml.Window.Current.CoreWindow.KeyDown += (sender, arg) =>
{
if (arg.VirtualKey == Windows.System.VirtualKey.Enter)
{
//Your login method
}
};
私のコメントによると、ビュー モデルで UI コードを使用することはお勧めしません。トリガーを使用して、テキスト ボックスでキーを押すコマンドにバインドします。
<TextBox>
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown">
<cmd:EventToCommandCommand="{Binding MyCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
xaml 宣言に以下を必ず含めてください。
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="http://www.galasoft.ch/mvvmlight"
お役に立てれば
ページには、オーバーライドできる OnKeyDown() という仮想メソッドがあります。これは、イベントをサブスクライブするよりも安全で、MVVM に適しています。私は、DataContext を自分のビュー モデル タイプにキャストして、好きなように呼び出すことを好みます。