开发者

Certificate and correct answer for the question

I am preparing for an exam and studying questions. However I have one question which in my opinion the a开发者_如何学JAVAnswer is wrong. Here's the question where the correct answer is D:

You use Microsoft .NET Framework 4 to create a Windows Presentation Foundation (WPF) application. The application has a window named MainWindow that has a StackPanel control named sp as the root element. You want to create a Button control that contains a TextBlock control with the "Save" Text property. You need to create the control dynamically and add the control to sp. Which code segment should you write in the constructor of the MainWindow class

A:

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

B:

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);

In my opinion the correct answer is B? Do you have any sugesstions?


I think you're right. Answer D makes no sense at all, because:

  1. you don't need the ContentTemplateSelector, since you're defining the content explicitly
  2. ContentTemplateSelector shouldn't be used explicitly, it's used by ContentControl when it needs to render non-visual content
  3. ContentTemplateSelector is null by default, so the code in answer D would crash with a NullReferenceException


I passed the same exam last week. And I agree that the correct answer should be B. You can try both in a sample application and you will see that D does not work.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜