2015-05-29 81 views
1

我有一個主控窗口,內容控件託管其他頁面。其中一個頁面有一個文本框和一個GridView。加載該頁面時,我想將焦點置於文本框上。如果我在代碼隱藏中執行此操作,那麼該框不會獲得焦點。如果我這樣做在XAML使用專注於文本框不能正常工作

FocusManager.FocusedElement="{Binding ElementName=DrugScanTextBox}" 

那麼我可以看到在文本框中光標的頁面,但它不閃爍,按鍵並不在框中顯示。

我唯一的猜測是gridview在加載並繪製數據之後,正在重點關注。

有關如何解決此問題的任何想法?

回答

0

我添加了一個布爾屬性'FocusNow',並在我的後臺工作人員加載事件結束時將其設置爲true,然後在用戶控件周圍添加了此邊框樣式。這樣,一切完成加載後,它將焦點設置到網格(在您的案例文本框中)。

<Border Margin="10" > 
    <Border.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding FocusNow}" Value="True"> 
        <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=xamDataGrid1}" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Border.Style> 

。 。 。

+0

我嘗試了類似的事件,但事實並沒有改變。必須有一個更好的方式來做到這一點... – Sam

+2

哈哈在WPF焦點是PITA –