【发布时间】:2017-06-14 07:45:42
【问题描述】:
我想向 Microsoft.Exchange.WebServices.Data.Folder 类添加一个属性。 这样做的原因是,我需要一个 bool 属性“Selected”将它在 WPF 中绑定到一个复选框。
首先我认为我可以使用 C#-Extensions,但目前无法编写属性扩展。
然后我创建了自己的类“MyFolder”,这样我就可以从 Folder 类转换为我的类。
它也不起作用。
public class MyFolder : Folder, INotifyPropertyChanged
{
private bool selected;
public bool Selected
{
get { return selected; }
set { selected = value; OnPropertyChanged("Selected"); }
}
public event PropertyChangedEventHandler PropertyChanged;
public MyFolder(ExchangeService service):base(service)
{
}
protected void OnPropertyChanged(string name)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
编辑:
我知道可以将属性文件夹添加到类 MyFolder。但我认为它必须以一种优雅的方式成为可能。
public class MyFolder : INotifyPropertyChanged
{
private bool selected;
public bool Selected
{
get { return selected; }
set { selected = value; OnPropertyChanged("Selected"); }
}
public event PropertyChangedEventHandler PropertyChanged;
public Folder FolderObject { get; set; }
public MyFolder(Folder FolderObject)
{
this.FolderObject = FolderObject;
}
protected void OnPropertyChanged(string name)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
【问题讨论】:
-
您在代码中使用的是
Folder还是MyFolder? -
MyFolder 是我要使用的类,因为 MyFolder 具有 selected 属性。
-
我明白,但你说你必须将
Folder转换为MyFolder。这就是为什么我要问您是否在代码中使用Folder或MyFolder。 -
我正在使用 MyFolder
-
您应该将您尝试绑定到的类包装在视图模型中,然后您可以将选定的属性添加到视图模型类,请参阅msdn.microsoft.com/en-gb/library/hh848246.aspx