我需要一个 WPF 控件,其功能类似于 TFS 中的“解决冲突”窗口,以及其他类似的源代码控制系统。
我有以下课程
public class Conflict:INotifyPropertyChanged
{
private string _name;
private List<Resolution> _resolutions;
private bool _focused;
private bool _hasResolutions;
public string Name
{
get { return _name; }
set
{
_name = value;
OnPropertyChanged("Name");
}
}
public List<Resolution> Resolutions
{
get { return _resolutions; }
set
{
_resolutions = value;
OnPropertyChanged("Resolutions");
}
}
public bool Focused
{
get { return _focused; }
set {
_focused = value;
OnPropertyChanged("Focused");
}
}
public bool HasResolutions
{
get { return _resolutions.Any(); }
set
{
_hasResolutions = value;
OnPropertyChanged("HasResolutions");
}
}
}
public class Resolution
{
public string Name { get; set; }
public void Resolve()
{
//Logic goes here
}
}
这与 Team Foundation Server (TFS) 的“解决冲突”窗口的功能几乎相同,如下所示:
对于上图中的每一行,它与我的 Conflcit 对象相同,并且对于每个按钮,将是 Conflict 对象上的 Resolution 对象之一。
我的计划是将我的 List 绑定到 ListView,然后编写一个自定义模板或其他任何东西来根据它是否被选中来隐藏/显示它下面的按钮。
为了简化我需要完成的工作,我有一个 List,我想将它绑定到一个控件,它看起来尽可能接近上图。
我将如何完成这个和 XAML 以及背后的代码?