2017-09-15 77 views
0

好吧,我必須使用大量的切換按鈕和文本框,所以我給它們命名的方式是在按鈕名稱中添加字母「Q」將給出文本框的名稱該按鈕對應於。我已將所有按鈕鏈接到檢查事件上的相同方法,並使用此命名機制我希望操作與該按鈕相對應的文本框。查找和操縱具有特定名稱的UI控件

我到現在爲止所做的是,以字符串格式生成文本框的名稱。但我不知道如何使用這個字符串來操縱文本框。

private void OnbuttonClick(object sender, RoutedEventArgs e) 
{ 
     ToggleButton tb = (ToggleButton)sender; 
     if(tb.IsChecked==true) 
     { 
      string tbnam = ((ToggleButton)sender).Name; 
      string name2 = tbnam + "Q"; 

      ?????? (what happens from this point onward) 
     } 
    } 

「name2」是對應於名稱爲「tbnam」的切換按鈕的文本框的名稱。

我希望我已經明確了這個問題。

回答

1

在WPF中,一個更好的方法來做到這一點會暴露在視圖模型對象的集合,並顯示在用戶界面與ItemsControlItemTemplate根據需要,將動態創建的ToggleButton /TextBox雙儘可能多的迭代。如果你有興趣,我會很樂意進入如何做到這一點。

但現在,你可以使用FindName(string)方法你的代碼工作:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    ToggleButton tb = (ToggleButton)sender; 
    if (tb.IsChecked == true) 
    { 
     string name2 = tb.Name + "Q"; 

     TextBox tbox = FindName(name2) as TextBox; 

     // Check to see if tbox is null, do stuff with it 
    } 
} 
+0

這是給「TBOX爲空」的錯誤 –

+0

這聽起來像是由該名稱的文本框是不是真的有在同一個窗口。在我的測試中,該代碼起作用。你能爲我提供足夠的XAML來測試你擁有的同一個案例嗎? –

+0

OH我發現了錯誤 –

相關問題