C# 当应用程序启动时,如何选择由HierarchycalDataTemplate填充的TreeViewItem?
我的XAML代码是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
<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中保存的电台
先谢谢你