我有WPF的問題 - 我在這個智能技術中很安靜。所以問題是:如何獲取WPF資源中元素的引用?
我有一個窗口。在這個窗口的資源中,我存儲了一個元素 - 例如。具有唯一鍵的網格(假設x:Key =「myGrid」)。在這個網格中,我有一個由名稱標識的文本框(x:Name =「myTextBox」)。 我的窗口只包含一個空格子(命名爲例如winGrid)。我以編程方式將myGrid設置爲winGrid的子項。現在,在運行時,我想獲得對myTextBox對象的引用。我花了大量的時間搜索,但沒有爲我工作(FindName和類似的方法)。
你有任何想法,我必須做些什麼來讓球滾動?
這裏是(僞)代碼片斷一次:
<Window x:Class="LoginForm.RidicWindow"
...>
<Window.Resources>
<Grid x:Key="myGrid">
<Border...
<Grid...
...
<TextBlock x:Name="myTextBlock" Grid.Column="0".../>
</Grid>
</Grid>
</Window.Resources>
<Grid x:Name="winGrid">
...
</Grid>
現在我設定的myGrid爲winGrid的孩子: (像)
winGrid.Childrens.Clear();
winGrid.Childrens.Add((Grid)FindResource(myGrid));
現在我想獲取myTextBlock的引用,它是myGrid的後代。
我想是這樣
((Grid)FindResource(myGrid)).FindByName("myTextBlock");
這一點,當然,不能正常工作。
希望你能理解我,我想得到的。 很多謝謝!
WPF/XAML如何處理名稱範圍[鏈接](http://msdn.microsoft.com/en-us/library/ms746659.aspx)這可能是與,它說資源字典d ont使用它們,因此它可能不會在創建控件時在後臺連接名稱。我相信做你想要實現的目標方法是創建一個包含'myGrid'的UserControl,然後將該UserControl的一個新實例添加到'winGrid'中。你可以得到一個對UserControl和FindName的引用(例如'var uc =(FrameworkElement)winGrid.Children [0]; uc.FindName(「...」);' –