【问题标题】:WPF binding to a UserControl propertyWPF 绑定到 UserControl 属性
【发布时间】:2010-11-05 16:17:02
【问题描述】:

我有一个项目列表,每个项目都包含一个从用户控件继承的类型的显示属性。这个想法是每个继承类可以自己决定它想为用户显示什么。这些项目本身排列在 DataTemplate 中,用于选项卡控件...类似于...

        <TabControl ItemsSource="{Binding FooList}">
            <TabControl.ItemTemplate>
                <DataTemplate>
                    <TabItem Header="{Binding Name}">
                        ???
                    </TabItem>
                </DataTemplate>
            </TabControl.ItemTemplate>
        </TabControl>

而 foo observablecollection 中的类看起来像......

    public class IFoo
    {
        public String Name { get; set; }
        public UserControl Display { get; set; }
        ...
    }

我想不通的是如何在 ??? 的位置添加显示属性在 XAML 中。有没有办法做到这一点(尽量避免从后面的代码中做到这一点)?

【问题讨论】:

    标签: c# wpf xaml binding


    【解决方案1】:

    你需要做的是使用TabControlItemContainerStyle属性:

    <TabControl ItemsSource="{Binding FooList}">
        <TabControl.ItemContainerStyle>
            <Style TargetType="{x:Type TabItem}">
                <Setter Property="Header" Value="{Binding Name}" />
                <Setter Property="Content" Value="{Binding Display}" />
            </Style>
        </TabControl.ItemContainerStyle>
    </TabControl>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-23
      • 2014-08-31
      • 2015-04-18
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多