请讨论“WPF:如何处理多XAML UI?”问题

时间:2013-12-07 17:32:01

标签: wpf xaml datagrid

这是我的帖子的延续:

WPF: How to handle multi-XAML UIs? (Follow-Up)

我很好奇abc.xaml文件与其对应的abc.xaml.cs之间的父子关系。这种关系是如何实施的?为什么在MSVS中看到另一个/在另一个内部?如何用记事本创建这两个文件?只是用一个共同的基名来命名它们吗?

TIA。

1 个答案:

答案 0 :(得分:2)

如果我是你,我不会太担心。这是一个完全与IDE相关的问题,并不会对您产生任何影响。

然而,让我快速向您解释:

使用Visual Studio UserControl操作在WPF项目中添加WindowAdd -> New Item..时,Visual Studio会向项目中添加3个文件:

1 - MyUserControl.xaml是XAML文件,其中包含构成UserControl的XAML。

2 - MyUserControl.xaml.cs,这是“代码隐藏”文件,定义了从public partial class派生的System.Windows.Controls.UserControl,它允许您为与{{{}}的交互创建其他逻辑1}}。

3 - 在封面下,还会生成另一个名为UserControl的文件。此文件包含与#2相同的类,也定义为MyUserControl.g.i.cs,并且还包含类中所有partial的定义,用于给出{{3}的任何相关XAML定义元素}。

这意味着如果您的XAML包含以下内容:

fields

<TextBox x:Name="TextBox1"/> 文件将包含如下声明:

.g.i.cs

此字段的值是通过WPF的内部机制分配的,我现在不会讨论。

底线是您在internal System.Windows.Controls.TextBox TextBox1; 代码后面的代码中编写的代码可能会使用MyUserControl.xaml.cs中定义的类成员(例如.g.i.cs),并且由于该文件依赖于XAML文件,因此代码隐藏在文件后面。

这就是为什么代码隐藏文件被设置为x:Name DependentUpon中的XAML文件,如果你查看TextBox1文件,看起来像这样:

csproj