2012-08-30 57 views
1

我想要在WPF應用程序中使用Prism的視圖之間的導航有能力將焦點設置爲特定文本框,以便用戶可以執行導航,然後開始在沒有第二次點擊進入文本框。設置焦點OnNavigatedTo在棱鏡WPF應用程序

我有一個應用程序與棱鏡建有殼牌ContentControl「MainContentRegionContentControl」。當我點擊它們時,我會在頂部有一些按鈕,我做了一個region.RequestNavigate("UserControlToLoad")。在UserControl我有OnNavigatedTo和在那個方法我叫this.MainTextBox.Focus()

上面看起來不起作用,導航似乎工作,OnNavigatedTo方法被調用,但文本框沒有焦點。

我已將FocusManager.IsFocusScope="True"添加到文本框中,但這沒有什麼區別。

回答

3

使用Loaded()方法爲每個頁面集中在TextBox而不是OnNavigatedTo()TextBox.Focus()將工作正常然後;)

+0

不錯的工作,非常感謝! – ChrisHDog

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成爲真正

+0

結果同OnNavigatedTo不幸 – ChrisHDog