您可以使用從MSDN documentation下面的方法來從頁面讓所有的文本框:
internal static void FindChildren<T>(List<T> results, DependencyObject startNode)
where T : DependencyObject
{
int count = VisualTreeHelper.GetChildrenCount(startNode);
for (int i = 0; i < count; i++)
{
DependencyObject current = VisualTreeHelper.GetChild(startNode, i);
if ((current.GetType()).Equals(typeof(T)) || (current.GetType().GetTypeInfo().IsSubclassOf(typeof(T))))
{
T asType = (T)current;
results.Add(asType);
}
FindChildren<T>(results, current);
}
}
它基本上遞歸獲得孩子的當前項目,並添加任何項目所請求的類型匹配的提供名單。
然後,你就必須做你頁面/按鈕處理程序下面的某個地方/ ...:
var allTextBoxes = new List<TextBox>();
FindChildren(allTextBoxes, this);
foreach(var t in allTextBoxes)
{
t.Text = "Updated!";
}
如何創建文本框?他們是否被命名?你有ViewModel嗎? 「清除」的意思是「清除文本框中的文本」,而不是「清除文本框的窗口」(刪除它們),對吧?你如何訪問它們,爲什麼你不使用相同的機制來設置文本? –
我在我的項目的xaml中聲明瞭Textboxes。我命名了它們中的每一個,目的是清除文本屬性。問題是我之前沒有從後面的代碼訪問它們,看到所有文本框如何從xmlDeserializer獲取它們的內容。 –