2017-10-11 24 views
0

オブジェクトのコレクションにバインドされたWPF MVVMアプリケーションでデータグリッド(セルとしてテキストボックスを持つデータグリッドテンプレートを使用)があります。データグリッドはシンプルで、2つの列(「名前」と「年」)しかありません。このウィンドウには、一度クリックされた入力ボタンがあり、コレクションの先頭にブランク行を挿入し、データグリッドの先頭に挿入します。DataGridコードビハインドの最初のセルにフォーカスを設定するMVVM

XAML

<Button Name="InsertButton" Command="{Binding InsertCommand}" /> 

のViewModel

public ViewModel() 
{ 
    InsertCommand = new DelegateCommand(OnInsert); 
} 

private void OnInsert(object obj) 
{ 
    MyList.Insert(0, new MyItem()); 
} 

これは、MVVMの設定で動作しますが、それ最初のセルのテキストボックスの挿入]ボタンをクリックするたびにフォーカスを設定する方法がある場合は疑問に、 MVVMを使用するのではなく、XAMLコードでプログラミングすることができますか?

ありがとうございます。

+0

XAMLマークアップを投稿してください。 – mm8

答えて

0

良い解決策は、ボタンクリックで複数のコマンドを実装することです。 これを実行する方法については、こちらをご覧ください。 https://www.codeproject.com/Articles/25808/Aggregating-WPF-Commands-with-CommandGroup。 その後、UIElementの ".Focus()"メソッドを使用して、必要な要素にフォーカスを有効にするコードを持つコードビハインドで2番目のコマンドを実装します。

もう1つの方法は、OnInsertメソッドの最後にViewModelでイベントを発生させることです。このイベントは、必要なUIElementの.Focus()を設定するコードの背後で処理されます。

関連する問題