我正在为我的应用程序编写一个WPF用户控件,包装一个ListBox和一些其他项目。如何为我的Wpf UserControl实现DisplayMemberPath?
ListBox有一个新的ItemTemplate,它为我的列表中的每个项目提供四条信息。我可以将四个绑定中的每一个硬编码到我的列表项上的特定属性,并且它们显示正常。
但是,我希望我的UserControl更灵活一点。
在ListBox和ComboBox有一个属性DisplayMemberPath(继承自ItemsControl),似乎将相应的属性绑定“注入”到标准ItemTemplate中。
如何通过我的用户控制实现相同的结果?
我想成立四个新的属性,让显示的信息配置:回顾与ItemsControl.DisplayMemberPath反射
public string LabelDisplayPath { get; set; }
public string MetricDisplayPath { get; set; }
public string TitleDisplayPath { get; set; }
public string SubtitleDisplayPath { get; set; }
似乎在下降兔子洞,我一直没能了解它是如何工作的。另外,如果我完全偏离了课程 - 并且还有另外一种更应该使用的“WPF”技术,请指出我的方向。
更新
这里有一个澄清什么,我想要的目的。
列表框我的用户控件显示四个信息每个项目中:标签,标题,副标题和公制
在一个地方,我想用这个用户控件来显示的问题的列表。每一个问题是这样的:
public class Issue {
public string Code { get; set; }
public string Description { get; set; }
public string Priority { get; set; }
public string Reporter { get; set; }
}
当显示的问题,我想用下面的映射:
Code --> Label
Description --> Title
Reporter --> Subtitle
Priority --> Metric
别处在同一个应用程序,我的职位名单,我想用显示相同的UserControl。每个帖子是这样的:
public class Post {
public DateTime PostedOn { get; set; }
public string Title { get; set; }
public string Teaser { get; set; }
public int CommentCount { get; set; }
}
当显示的帖子,我想用下面的映射:
PostedOn --> Label
Title --> Title
Teaser --> Subtitle
CommentCount --> Metric
考虑到的问题和文章是完全不同的抽象,我不想强迫他们具有相同的属性,只是为了使用户控件能够保持不变。相反,我想介绍一些可配置性,以便我可以在两个站点中干净地重用我的UserControl。
我不太明白你想要做什么。通过对你的绑定进行“硬编码”,你仅仅依靠数据绑定这一事实来获得灵活性,对吗?我的意思是,您可以绑定到任何DependencyProperty并在代码隐藏中更改该值。你可以发布你正在使用的XAML样本,并突出显示你不满意的是什么? – Dave 2010-05-05 03:48:55