2

Prism を使用した WPF アプリケーションのビュー間のナビゲーションで、特定のテキスト ボックスにフォーカスを設定して、ユーザーがナビゲーションを実行し、テキスト ボックスを 2 回クリックしなくても関連するテキスト ボックスに入力できるようにしたいと考えています。

ContentControl「MainContentRegionContentControl」を持つシェルを持つ Prism で構築されたアプリケーションがあります。次に、それらをクリックすると、上部にいくつかのボタンが表示されますregion.RequestNavigate("UserControlToLoad")。にUserControlは がOnNavigatedToあり、そのメソッドで を呼び出しますthis.MainTextBox.Focus()

上記は機能していないようで、ナビゲーションは機能しているように見え、OnNavigatedToメソッドが呼び出されますが、テキストボックスにはフォーカスがありません。

テキストボックスに追加FocusManager.IsFocusScope="True"しましたが、違いはありません。

4

2 に答える 2

0

次のことを試してください... ビューで IActiveAware を実装します

class ViewModel : IActiveAware
{
    #region IActiveAware Members
    private bool isActive = false;

    public bool IsActive
    {
        get
        {
            return isActive;
        }
        set
        {
            if (value != isActive)
            {
                isActive = value;
                OnIsActiveChanged(EventArgs.Empty);
            }
        }
    }


    public event EventHandler IsActiveChanged = delegate { };

    protected virtual void OnIsActiveChanged(EventArgs args)
    {
        IsActiveChanged(this, args);
    }
    #endregion
}

OnIsActiveChanged、IsActiveがtrueになったときにフォーカスしたいTextBoxにフォーカスを設定してみてください

于 2012-10-19T18:21:20.243 に答える