C# 当应用程序启动时,如何选择由HierarchycalDataTemplate填充的TreeViewItem?

C# 当应用程序启动时,如何选择由HierarchycalDataTemplate填充的TreeViewItem?,c#,wpf,treeviewitem,C#,Wpf,Treeviewitem,我的XAML代码是 <TreeView x:Name="tvDati" Grid.Row="0" IsTextSearchEnabled="True" SelectedItemChanged="tvDati_SelectedItemChanged"> <TreeView.Resources> <HierarchicalDataTem

我的XAML代码是

<TreeView x:Name="tvDati" Grid.Row="0" IsTextSearchEnabled="True" SelectedItemChanged="tvDati_SelectedItemChanged">
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type self:Place}" ItemsSource="{Binding Members}">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="Images/place_icon_x16.png" Margin="0,0,5,0" Stretch="Uniform" Width="12" Height="12"/>
                        <TextBlock Text="{Binding Nome}" />
                    </StackPanel>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type self:Unit}" ItemsSource="{Binding Members}">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="Images/unit_icon_x16.png" Margin="0,0,5,0" Stretch="Uniform" Width="12" Height="12"/>
                        <TextBlock Text="{Binding Nome}" />
                    </StackPanel>
                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type self:Line}" ItemsSource="{Binding Members}">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="Images/line_icon_x16.png" Margin="0,0,5,0" Stretch="Uniform" Width="12" Height="12"/>
                        <TextBlock Text="{Binding Nome}" />
                    </StackPanel>
                </HierarchicalDataTemplate>
                <DataTemplate DataType="{x:Type self:Station}">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="Images/station_icon_x16.png" Margin="0,0,5,0" Stretch="Uniform" Width="12" Height="12" />
                        <TextBlock Text="{Binding Nome}" />
                        <TextBlock Text="{Binding Data}" Foreground="Green" />
                    </StackPanel>
                </DataTemplate>
            </TreeView.Resources>
        </TreeView>

上课的地方是

public class Place
{
    public Place()
    {
        this.Members = new ObservableCollection<Unit>();
    }

    public string Nome { get; set; }
    public int Id { get; set; }

    public ObservableCollection<Unit> Members { get; set; }
}
公共课堂场所
{
公共场所()
{
this.Members=新的ObservableCollection();
}
公共字符串Nome{get;set;}
公共int Id{get;set;}
公共ObservableCollection成员{get;set;}
}
班级单元是

public class Unit
{
    public Unit()
    {
        this.Members = new ObservableCollection<Line>();
    }

    public string Nome { get; set; }
    public int Id { get; set; }

    public ObservableCollection<Line> Members { get; set; }
}
公共类单元
{
公共单位()
{
this.Members=新的ObservableCollection();
}
公共字符串Nome{get;set;}
公共int Id{get;set;}
公共ObservableCollection成员{get;set;}
}
班级线是

public class Line
{
    public Line()
    {
        this.Members = new ObservableCollection<Station>();
    }

    public string Nome { get; set; }
    public int Id { get; set; }

    public ObservableCollection<Station> Members { get; set; }
}
公共类行
{
公共电话线()
{
this.Members=新的ObservableCollection();
}
公共字符串Nome{get;set;}
公共int Id{get;set;}
公共ObservableCollection成员{get;set;}
}
班站是

public class Station
{
    public string Nome { get; set; }
    public int Id { get; set; } 
    public string IniPath3D { get; set; } 
    public string IniPath3DV4 { get; set; } 
    public string Data { get; set; } 
    public int BackupNumber { get; set; }

    public Station()
    {
        this.Members = new ObservableCollection<_3DOnsite_Organizer.Station_Item>();
    }

    public ObservableCollection<_3DOnsite_Organizer.Station_Item> Members { get; set; }

}
公共类电台
{
公共字符串Nome{get;set;}
公共int Id{get;set;}
公共字符串IniPath3D{get;set;}
公共字符串IniPath3DV4{get;set;}
公共字符串数据{get;set;}
公共int备份编号{get;set;}
公共电台()
{
this.Members=新的ObservableCollection();
}
公共ObservableCollection成员{get;set;}
}
在事件SelectedItemChange of TreeViev tvDati上,我检查是否选择了元素站,然后将id值保存在应用程序的设置中

private void tvDati_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
    {
        try
        {
            Station SelectedStation= (Station)tvDati.SelectedItem; 

            if (SelectedStation==null)
                _3DOnsite_Organizer.Properties.Settings.Default.MemoriaNodo = null;
            else _3DOnsite_Organizer.Properties.Settings.Default.MemoriaNodo= SelectedStation.Id.ToString();
        }
        catch 
        {
        }
    }
private void tvDati\u SelectedItemChanged(对象发送方,RoutedPropertyChangedEventArgs e)
{
尝试
{
所选电台电台=(电台)tvDati.SelectedItem;
如果(SelectedStation==null)
_3DU Organizer.Properties.Settings.Default.MemoriaNodo=null;
else\u 3dosite\u Organizer.Properties.Settings.Default.MemoriaNodo=SelectedStation.Id.ToString();
}
抓住
{
}
}
现在的问题是:当应用程序启动时,我如何扩展和选择settigs中保存的电台

先谢谢你