如何在应用程序启动时选择由 HierarchicalDataTemplate 填充的 TreeViewItem?

问题描述

我的 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,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" 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" 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" 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; }
}

班级单位是

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; }
}

类行是

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; }
}

类站是

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; }

}

在TreeViev tvDati的SelectedItemChange事件上,我检查是否选择了一个元素Station,然后我将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 
        {
        }
    }

现在的问题是:当应用程序启动时,我如何扩展并选择保存在settigs中的站?

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...