如何更改 WPF XAML 以反映 C# 代码隐藏中的更改
本文关键字:隐藏 代码 WPF 何更改 XAML | 更新日期: 2023-09-27 17:56:02
我正在折射样本中的代码:
- 24.129.21. 主细节绑定
来自 C#/CSharp 教程 » Windows Presentation Foundation » Binding)
我来到了以下 C# 代码隐藏,使用相同的 XAML 运行:
namespace WpfApplication1
{
public class Skill
{
public string Description { get; set; }
}
//I'd like to comment out the next line
public class Skills : ObservableCollection<Skill>{ }
public class Employee
{
public string Name { get ; set; }
public int Age { get; set; }
//public Skills Skills { get; set; }
//instead of line above - works!
public ObservableCollection<Skill> Skills { get; set; }
}
public class Team : ObservableCollection<Employee> { }
public class Company
{
public string CompanyName { get ; set; }
public Team Members { get ; set; }
}
public class Companies : ObservableCollection<Company> { }
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
即从
-
public Skills Skills { get; set; }
自
-
public ObservableCollection<Skill> Skills { get; set; }
在Employee
类
因此,我想摆脱,即注释掉该行:
public class Skills : ObservableCollection<Skill>{ }
但我得到:
错误 1 XML 命名空间中不存在标记"技能" 'clr-namespace:_24_129_21_Master_Detail_Binding'.13号线位置34
在窗口中1.xaml
<local:Team>
<local:Employee Name="Larry" Age="21">
<local:Employee.Skills>
<local:Skills>
如何更改 XAML 才能执行此操作?
我应该如何为此更改 XAML?
在Window1.xaml
类中删除对技能类的引用:(例如 <local:Skills>
),因为您不再有技能课程。相反,您希望在 ObservableCollection 中加入许多Skill
元素:
<local:Team>
<local:Employee Name="Larry" Age="21">
<local:Employee.Skills>
<local:Skill />
<local:Skill />
....
此外,您可能应该在员工的构造函数中初始化技能可观察集合。