集合不绑定到treeview

时间:2012-09-19 14:36:20

标签: c# wpf binding treeview

我有一个Observablecollection类型的EntityBase。 EntityBase是Ticket,Project,...类的基类。现在我想将该集合绑定到treeview,但是在调试时没有显示数据。此外,输出调试窗口中没有绑定错误。

有代码:

public partial class ReminderExtendedWindow : Window , INotifyPropertyChanged
    {
        private ObservableCollection<EntityBase> coll;
        public ObservableCollection<EntityBase> Coll  
        { 
            get
            { if (coll == null) coll = new ObservableCollection<EntityBase>(); return coll; }
            set { coll = value; NotifiyPropertyChanged("Coll"); }
        }

        public ReminderExtendedWindow()
        {
            InitializeComponent();
            this.ResizeMode = ResizeMode.NoResize;
            Ticket ticket = new Ticket();
            ticket.TicketId = 3535;
            ticket.TicketUrl = "http://www.google.com";
            ticket.TicketRequestTypeName = "denemeticket";
            Project project = new Project();
            project.ProjectUrl = "http://www.google.com";
            project.ProjectId = 1221;
            project.ProjectTypeName = "denemeproj";
            Coll.Add(ticket);
            Coll.Add(project);

        }
}

XAML 文件代码:

<TreeView Height="500" Width="375" Background="Transparent" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,50,0,0" 
               BorderThickness="0,0,0,0" x:Name="EntityTree" ItemsSource="{Binding Coll}">
            <TreeView.Resources>
                  <HierarchicalDataTemplate DataType="{x:Type BusinessLayerEntity:Ticket}" ItemsSource="{Binding}">
                    <TextBlock>
                <Hyperlink RequestNavigate="Hyperlink_RequestNavigate" NavigateUri="{Binding TicketUrl}">
                    <TextBlock Text="{Binding TicketId}"></TextBlock>
                </Hyperlink>
                       <TextBlock Text="{Binding TicketRequestTypeName}"></TextBlock>
                  </TextBlock>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type BusinessLayerEntity:Project}" ItemsSource="{Binding}">
                    <TextBlock>
                <Hyperlink RequestNavigate="Hyperlink_RequestNavigate" NavigateUri="{Binding ProjectUrl}">
                    <TextBlock Text="{Binding ProjectId}" ></TextBlock>
                </Hyperlink>
                        <TextBlock Text="{Binding ProjectTypeName}"></TextBlock>
            </TextBlock>
                </HierarchicalDataTemplate>
            </TreeView.Resources>
        </TreeView>

这是类:( Ticket类也具有相同的属性)

public class Project : EntityBase, IEntityBase
{
    private string projectUrl;
    private string projectTypeName;
    private int projectId;

    public string ProjectUrl { get { return projectUrl; } set { projectUrl = value; } }
    public string ProjectTypeName { get { return projectTypeName; } set { projectTypeName = value; } }
    public int ProjectId { get { return projectId; } set { projectId = value; } }
}

任何帮助将不胜感激:)谢谢

1 个答案:

答案 0 :(得分:3)

尝试将DataContext = this;添加到ReminderExtendedWindow构造函数

的末尾