【发布时间】:2016-02-26 03:56:40
【问题描述】:
标题说明了一切,但可以说我有一个接口 IPerson 和 IPerson 具有 UserControl 作为其属性。
在主 xaml 中,我已经有一个 IPerson 类型的 Observable 集合 People,并且我已将 ItemsSource 与 People ItemsSource={Binding People} 绑定
如何在 ItemsControl 中显示与 IPerson 关联的 UserControl?
界面
public interface IPerson
{
string DisplayName { get; }
/// <summary>
/// Call that is going to add the UI component to XML Editor
/// </summary>
UserControl DisplayingUserControl { get; }
}
在虚拟机中
public ObservableCollection<IPerson> People
正在观看
<ItemsControl ItemsSource="{Binding People}" Padding="3">
<ItemsControl.ItemTemplate>
<DataTemplate>
<XXX Content="{Binding DisplayingUserControl}" Height="Auto" Width="Auto"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我想知道怎么填写XXX
【问题讨论】:
-
你想在你的主窗口中绑定用户控件吗?
-
没有。 MainWindow(技术上是 MainWindowViewModel 但是)有
ObservableCollection<IPerson> -
在您用于绑定的属性中,使用 ObservableCollection
但请注意,对于数据网格,您必须将自动生成列设置为 YES,因为在运行时才知道列类型和名称。
标签: c# wpf xaml itemscontrol itemssource