2012-12-08 35 views
0

我想創建一個帶有層級「感覺」的簡單日誌記錄系統。我希望這個屏幕截圖說明了我的目標明確:ObservableCollection - 綁定到HierarchicalDataTemplate顯示類型

enter image description here

正如你所看到的,我創建類型LogDetails的新對象,僅公開了4個領域:

public string Message; 
     public LogStatus Status; 
     public string ErrorDetails; 

     public enum LogStatus 
     { 
      Complete, Failed, Error, FatalError, Progress, Started 
     } 

我有另一類有一個Title屬性(字符串)和一個LogDetails屬性。

當我綁定到XAML,我的樹視圖顯示此:

enter image description here

正如你所看到的,根細而預期/所需的(紅色),但每個子類不被中斷 - 我希望能夠繞過關卡並直接進入ErrorDetails,Message和Status。所以,我想創建這樣(在Word中嘲笑了,但希望你的想法):

enter image description here

這是我的XAML:

<Grid> 
<TreeView ItemsSource="{Binding}"> 
    <TreeView.ItemTemplate> 
     <HierarchicalDataTemplate ItemsSource="{Binding LogDetailsList}" > 
      <TextBlock Text="{Binding Title}" /> 
      <HierarchicalDataTemplate.ItemTemplate> 

       <DataTemplate> 
        <TextBlock Text="{Binding}" /> 
       </DataTemplate> 

      </HierarchicalDataTemplate.ItemTemplate> 
     </HierarchicalDataTemplate>    
    </TreeView.ItemTemplate> 
</TreeView> 
</Grid> 

背後

我的主窗口代碼
public partial class MainWindow : Window 
    { 
     static public ObservableCollection<Log> logList; 

     public MainWindow(List<Log> logs) 
     { 
      InitializeComponent(); 

      logList = new ObservableCollection<Log>(); 

      foreach (var item in logs) 
      { 
       logList.Add(item);  
      } 

      this.DataContext = logList; 
     } 
    } 

任何人都可以請我指出正確的方向,或者至少讓我知道,如果我的設計是有缺陷的?

編輯
當我嘗試添加另一個文本塊或ItemTemplate中,我得到錯誤信息「屬性的ItemTemplate設置不止一次」或「該物業的VisualTree設置不止一次」

回答

1

您應該提供綁定表達式的路徑。

+0

所以很簡單 - 我不能相信我錯過了,謝謝。 – Dave

相關問題