• 1400/09/21

بایند کردن چند مجموعه برای ItemsSource در HierarchicalDataTemplate :

با عرض سلام و وقت بخیر .

زمانی که در یک مدل بیش از یک مجموعه داشته باشیم و بخواهیم هردوی آنها را در یک TreeView  نشان بدهیم چطور باید بیش از یک مجموعه را به ItemsSouece بایند کنیم؟ : 

برای مثال یک مدل به نام Folder داریم که خودش شامل دوتا مجموعه دیگه است 

public class Folder
    {
        public string FolderName { get; set; }
        public List<Folder> Folders { get; set; }
        public List<Person> People { get; set; }
    }

بعد در فایل xaml :

<TreeView x:Name="BaseTreeView">
                <TreeView.Resources>

                     <HierarchicalDataTemplate DataType="{x:Type models:Folder}"
                                              ItemsSource="{Binding Folders}">
                        <StackPanel Orientation="Horizontal"
                                    Height="20">
                            <TextBlock Text="{Binding FolderName}" />
                        </StackPanel>
                    </HierarchicalDataTemplate>
                    <DataTemplate DataType="{x:Type models:Person}"
                                              >
                        <StackPanel Orientation="Horizontal"
 >                               
                            <TextBlock Text="{Binding PersonName}" />
                        </StackPanel>
                    </DataTemplate>

                 
                </TreeView.Resources>
            </TreeView>

با این روش ، Person های فولدر اصلی  نمایش داده نمی شوند چون فقط فولدر ها را به ItemsSource بایند کردیم. 

در صورت امکان راهنمایی بفرمایید با تشکر.

 

logo-enamadlogo-samandehi