簡體   English   中英

TreeView ItemsSource MVVM綁定

[英]TreeView ItemsSource MVVM Binding

我有一個默認的treeviewitem的TreeView,另一個具有動態值。 但是我沒有那個TreeViewItem的名稱,而是擁有: https : //gyazo.com/00563993faf7f5d59bb8ab6870fd428d

整行是:“ MyWindowsMediaPlayer.Model.PlaylistDB”

XAML:

<TreeView Grid.Row="0" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Top" Width="135">
            <TreeViewItem Header="Bibliotheque" IsExpanded="True">
                <TreeViewItem Header="Mes Musiques" IsSelected="True"></TreeViewItem>
                <TreeViewItem Header="Mes Videos"></TreeViewItem>
                <TreeViewItem Header="Mes Images"></TreeViewItem>
            </TreeViewItem>
            <TreeViewItem Header="Lecteur"></TreeViewItem>
            <TreeViewItem Header="Playlist" ItemsSource="{Binding ItemSourceTree}">
            </TreeViewItem>
        </TreeView>

CS:

private ObservableCollection<PlaylistDB> _itemSourceTree;
public ObservableCollection<PlaylistDB> ItemSourceTree
        {
            get { return this._itemSourceTree; }
            set
            {
                this._itemSourceTree = value;
                this.OnPropertyChanged("ItemSourceTree");
            }
        }

並在初始化時:

this.ItemSourceTree.Add(new PlaylistDB() { NamePlaylist = "I'm a test" });
this.ItemSourceTree.Add(new PlaylistDB() { NamePlaylist = "I'm a test 2 " });

您的樹形視圖不知道如何顯示PlaylistDB對象。

像這樣重寫PlaylistDB的ToString()方法:

public override string ToString()
{
  return "NameOfElement";
}

您也可以按照以下說明編輯TreeView資源: http : //www.wpf-tutorial.com/treeview-control/treeview-data-binding-multiple-templates/

您必須在TreeView資源下定義DataTemplate ,以定義UI如何呈現TreeViewItem的綁定ViewModel的模板。

 <DataTemplate DataType="{x:Type local:PlaylistDB}">
          <StackPanel Orientation="Horizontal">
             <TextBlock Text="{Binding NamePlaylist }" />
          </StackPanel>
 </DataTemplate>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM