如何在WPF XAML中使用嵌套类?
我正在重构示例中的代码:
- 24.129.21。 主细节装订
来自C#/ CSharp教程 »Windows Presentation Foundation»绑定)
并且在排除技能课程后 ,进行相应的更改
在MainWindow.xaml中
在MainWindow1.xaml.cs中 :
using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; namespace WpfApplication { public class Skill {//I'd like to exclude class Skill having moved it into class Employee as nested one public string Description { get; set; } } public class Employee { public string Name { get ; set; } public int Age { get; set; } public List Skills { get; set; } public Employee() { Skills=new List(); } /*class Skill { public string Description { get; set; } } */ } public class Team : ObservableCollection { } public class Company { public string CompanyName { get ; set; } public Team Members { get ; set; } } public class Companies : ObservableCollection { } public partial class Window1 : Window { public Window1() { InitializeComponent(); } } }
如果要移动,我应该如何更改Window1.XAML:
-
Skill
类进入Employee
类
在Window1.xaml.cs?
相关问题
基于相同的代码:
- 如何在WPF XAML中将自定义类型更改为系统类型(字符串)?
更新(回答第一次RV1987的评论) :
答案tp 在XAML中创建嵌套类的实例告诉它可能但不清楚如何使用:
- Ludovic回答说这是可能的,但包含评论,不清楚如何使用。
这完全符合我的经验和这个问题 -
townsean的另一个答案是基于msdn的引用:
“您的自定义类不能是嵌套类。嵌套类和一般 CLR使用语法中的”点“会干扰其他WPF和/或XAMLfunction,例如附加属性。”但是,它一般来说 ,对于“你的自定义类”,但在我的具体代码附加到这个问题有几十个“点” (如
Employee.Skills
),它不是我的自定义类嵌套但我的自定义类里面有嵌套类。
Update2(回答第二次RV1987的评论问题) :
是的,我刚刚尝试了+方法 ,但这不起作用,但是:
- 即使在完美的工作元素上,XAML也会给我错误
- 我自己并没有尝试过使用reflection器,也没有找到其他任何可行的方法或者微软对它的模糊参考
不幸的是,XAML(来自MSDN )无法实现您想要做的事情:
您的自定义类不能是嵌套类。 嵌套类和一般CLR使用语法中的“点”会干扰其他WPF和/或XAMLfunction,例如附加属性。