2012-09-19 86 views
0

我有一個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> 

這裏是類:(票務類也有相同的屬性)

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; } } 
} 

任何幫助將不勝感激:)謝謝

回答

3

嘗試增加DataContext = this;ReminderExtendedWindow構造結束

+0

當試圖通過.Show打開窗口()方法,用異常消息=拋出「Items集合必須在使用ItemsSource前空的。」 –

+1

對不起:)在XAML文件中有一個虛擬物品。問題解決了。謝謝你的幫助 :) –