我正在准备考试和学习问题。但是我有一个问题,在我看来答案是错误的。这是正确答案是D的问题:
您使用Microsoft .NET Framework 4 创建Windows演示文稿 基金会(WPF)申请。该 application有一个名为的窗口 MainWindow有一个StackPanel 控件名为sp作为根元素。 您想要创建一个Button控件 包含一个TextBlock控件 “保存”文本属性。你需要 动态创建控件并添加 对sp的控制哪个代码段 你应该写在构造函数中吗? MainWindow类
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);
在我看来,正确答案是B?你有任何想法吗?
答案 0 :(得分:7)
我认为你是对的。答案D完全没有意义,因为:
ContentTemplateSelector
,因为您明确定义了内容ContentTemplateSelector
不应该显式使用,ContentControl在需要呈现非可视内容时使用ContentTemplateSelector
默认为null,因此答案D中的代码会因NullReferenceException
答案 1 :(得分:3)
我上周通过了相同的考试。我同意正确的答案应该是B. 您可以在示例应用程序中尝试这两种方法,然后您将看到D不起作用。