2011-03-16 74 views
0

我有一個應用程序,每個選項卡中有一個選項卡控件和幾個文本框,當用戶這樣說時,我想要清除窗口(稱爲MainWindow)中的每個文本框。我使用了here中描述的方法,但它似乎只適用於選項卡中的焦點文本框。WPF - 清除tabcontrol中的所有文本框不工作

+0

請檢查我的解決方案爲你工作。 – 2011-03-17 15:05:45

回答

4

試試這個:

void ClearTextBoxes(DependencyObject obj) 
{ 
    TextBox tb = obj as TextBox; 
    if (tb != null) 
     tb.Text = ""; 

    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj as DependencyObject); i++) 
     ClearTextBoxes(VisualTreeHelper.GetChild(obj, i)); 
} 

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    ClearTextBoxes(this); 
} 
+0

它似乎沒有對我目前的方法有不同的影響。 – user646265 2011-03-17 18:34:31

+0

可以詳細說明嗎? – 2011-03-18 08:59:05

+0

當我清除文本框時,只清除焦點選項卡中包含的文本框。 – user646265 2011-03-18 19:15:35

1

嘗試用LogicalTreeHelper.GetChildren

LogicalTreeHelper更換呼叫VisualTreeHelper.GetChildren得到實際的視覺樹。通常這比邏輯樹多,但在這種情況下,由於其他選項卡不可見 - 這些選項卡中的可視化子樹不會被創建。 雖然LogicalTree應該仍然存在,所以應該工作。