Laden...

Template zuweisung annhand von object type

Erstellt von Robin0 vor 10 Jahren Letzter Beitrag vor 10 Jahren 560 Views
R
Robin0 Themenstarter:in
212 Beiträge seit 2012
vor 10 Jahren
Template zuweisung annhand von object type

Hallo,

Ich Möchte gerne einem DataGrid ein template geben jenach ausgewähltem item aus einer TreeView.

Ich lasse die TreeView dynamisch aufbauen daher enthät sie auch unterschiedliche Klassen als TreeViewItem.

ClassenBeispiel:


public Class Class1
{
ObservableCollection<Class2> ChildPages;

Name = "Element1";

public Clas1()
{
ChildPages.Add(new Class2());
}
}
public Clas Class2
{
ObservableCollection<Class2> ChildPages;

Name = "Element1.1";
}


            <TreeView.ItemTemplate>
                <HierarchicalDataTemplate ItemsSource="{Binding ChildPages}">
                      <TextBlock Text="{Binding Name}" />

Nun möchte ich aus abhängig von der klasse des SelectedItem der TreeView ein Datagrid befüllen.


<DataGrid Template="{DynamicResource TMandator}"> 

Template des DataGrid


<Window.Resources>
            <Style x:Key="GridStyle" TargetType="{x:Type DataGrid}" >
            <Setter Property="Height" Value="500" />
            <Setter Property="Width" Value="300" />
            <Setter Property="AutoGenerateColumns" Value="False" />
                <Setter Property="IsReadOnly" Value="False" />
                <Setter Property="GridLinesVisibility" Value="All" />
                <Setter Property="CanUserAddRows" Value="True" />
                <Setter Property="CanUserDeleteRows" Value="True" />
                <Setter Property="CanUserResizeColumns" Value="True" />
                <Setter Property="CanUserResizeRows" Value="False" />
                <Setter Property="CanUserReorderColumns" Value="False" />
            </Style>

            <ControlTemplate x:Key="Template">
            <DataGrid ItemsSource="{Binding ElementName=TreeView1,
                                    Path=SelectedItem.SelectedItem,
                                    UpdateSourceTrigger=PropertyChanged}"
            Style="{StaticResource GridStyle}" >
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="Name" Width="*" FontSize="15"
                                        Binding="{Binding Path=<!--Hier möchte ich die namen der untergeordneten Elemente anzeigen-->}" />
                    </DataGrid.Columns>                
                </DataGrid>
        </ControlTemplate>
    </Window.Resources>

R
Robin0 Themenstarter:in
212 Beiträge seit 2012
vor 10 Jahren

Gelöst!!
Ich verwende nun ein ContentPresenter


 <ContentPresenter Content="{Binding ElementName=PagesHost, Path=SelectedItem}" Grid.Column="1" Grid.Row="2">

 <DataTemplate DataType="{x:Type MyClasses:Class1}">
<!-- Sachen darstellen-->

                </DataTemplate>
        </ContentPresenter>