2010-02-02 72 views
3

這和前面提到的question非常相似。我希望更清楚並獲得不同的答案。WPF - 從DataTemplate創建UI對象

我有一個數據對象(稱爲MockUI)。它有這樣的數據模板(在App.xaml中):我想創建 UI目標的數據模板是什麼

<DataTemplate DataType="{x:Type local:MockWI}"> 
    <Button Content="{Binding Name}"/> 
</DataTemplate> 

在我的代碼。所以我有myMockWI,我想找出將使用哪個模板並獲取它創建的對象(在這種情況下是一個內容設置爲myMockWI的按鈕)。

我試圖只是做一個按鈕:

Button myButton = new Button {Content = myMockWI} 

但正如你可能已經猜到,創建則該按鈕使該按鈕內的另一個按鈕(因爲應用數據模板)。我怎樣才能得到一個按鈕?

+0

你可以花你的文章一些時間..這是一個有點混亂。這有什麼用途? MockWI是MockUI的一個錯字嗎?您是否試圖以編程方式檢索特定實例的視圖(從數據模板創建)? – Gishu 2010-02-02 04:53:02

+0

@Gishu:感謝您提供更好的帖子。我認爲我自己想出了這一個,或者我絕對會更好/更多信息。 – Vaccano 2010-02-02 05:32:03

回答

2

原來我只是需要上一下UI樹。

如果我創建一個新的ContentControl,那麼它沒有對它進行查找並採取任何數據模式。

所以我的代碼更改從上面這個:

ContentControl myControl = new ContentControl {Content = myMockWI}; 
+1

你這樣做是對的。任何派生自ContentControl的東西都可以使用DataType設置DataTemplate來託管數據對象,例如。 ContentPresenter,ListBox,ListView等。 – 2010-02-02 11:40:09