2011-03-20 70 views
5

我正在準備考試和學習問題。然而,我有一個問題,在我看來,答案是錯誤的。這裏就是正確答案是d問題:證書和問題的正確答案

您使用的Microsoft .NET Framework 4 創建的Windows Presentation 基金會(WPF)應用程序。 應用程序有一個名爲 的窗口,該窗口具有名爲sp的StackPanel 控件作爲根元素。 您想要創建一個Button控件 ,其中包含一個TextBlock控件,其中包含 「保存」文本屬性。您需要動態創建控件並將 控件添加到sp。

Button btn = new Button(); 
TextBlock text = new TextBlock(); 
text.Text = "Save"; 
btn.Content = text; 
sp.DataContext = btn; 

B::你應該在 構造MainWindow類

一個寫哪段代碼

Button btn = new Button(); 
TextBlock text = new TextBlock(); 
text.Text = "Save"; 
btn.Content = text; 
sp.Children.Add(btn); 

C:

Button btn = new Button(); 
TextBlock text = new TextBlock(); 
text.Text = "Save"; 
sp.Children.Add(btn); 
sp.Children.Add(text); 

d:

Button btn = new Button(); 
TextBlock text = new TextBlock(); 
text.Text = "Save"; 
btn.ContentTemplateSelector.SelectTemplate(text, null); 
sp.Children.Add(btn); 

在我看來,正確答案是B?你有任何sugesstions?

+0

我認爲你是正確的,B是正確答案崩潰。其他答案不正確。 – Sonorx 2011-03-20 13:49:54

+1

從不編碼的.NET或WPF,但我也選擇B.它似乎正確地分配兩個對象的屬性。 – Blender 2011-03-20 13:54:08

回答

7

我認爲你是對的。答案d是沒有意義的,因爲:

  1. 你不需要ContentTemplateSelector,因爲你定義的內容明確
  2. ContentTemplateSelector不應該明確地使用,它的使用由ContentControl中時,它需要渲染非可視內容
  3. ContentTemplateSelector默認爲空,所以在回答d代碼將與NullReferenceException
3

我上週通過了相同的考試。我同意正確答案應該是B. 您可以在示例應用程序中嘗試這兩種方法,並且您會看到D不起作用。

+0

hi Jogy。你能告訴我考試怎麼樣?這些問題是否與練習測試包含的內容相似?我已經檢查過D不能正常工作 – 2011-03-20 14:00:07

+0

我確實有這個問題和其他問題。我以982分的成績通過。 – Jogy 2011-03-20 15:42:44