Загрузка данных


<Window x:Class="IfcBimEditor.MainWindow"
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:xbim="clr-namespace:Xbim.Presentation;assembly=Xbim.Presentation"
 xmlns:local="clr-namespace:IfcBimEditor"
 Title="IFC BIM Editor — xBIM" Height="850" Width="1450" MinWidth="1050">
 <DockPanel>
  <ToolBar DockPanel.Dock="Top">
   <Button Click="Open_Click" Padding="12,5">Открыть IFC</Button>
   <Button Click="Save_Click" Padding="12,5">Сохранить как…</Button>
   <Separator/>
   <Button Click="Similar_Click" Padding="12,5">Выделить подобные</Button>
   <Button Click="Apply_Click" Padding="12,5">Изменить свойство у выбранных</Button>
   <Separator/>
   <TextBlock VerticalAlignment="Center" Text="Критерий:" Margin="8,0"/>
   <ComboBox x:Name="MatchMode" Width="165" SelectedIndex="0">
    <ComboBoxItem Content="IFC-класс"/>
    <ComboBoxItem Content="Имя"/>
    <ComboBoxItem Content="Тип элемента"/>
   </ComboBox>
  </ToolBar>
  <StatusBar DockPanel.Dock="Bottom"><TextBlock x:Name="StatusText" Text="Откройте IFC-файл"/></StatusBar>
  <Grid>
   <Grid.ColumnDefinitions><ColumnDefinition Width="290"/><ColumnDefinition Width="*"/><ColumnDefinition Width="340"/></Grid.ColumnDefinitions>
   <DockPanel Grid.Column="0" Margin="6">
    <TextBlock DockPanel.Dock="Top" Text="Структура IFC" FontWeight="Bold" Margin="4,8"/>
    <Grid DockPanel.Dock="Top" Background="#E9EDF3" Margin="0,0,0,3">
     <Grid.ColumnDefinitions><ColumnDefinition Width="110"/><ColumnDefinition Width="90"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
     <TextBlock Grid.Column="0" Text="Тип" FontWeight="Bold" Margin="5"/>
     <TextBlock Grid.Column="1" Text="Название" FontWeight="Bold" Margin="5"/>
     <TextBlock Grid.Column="2" Text="Описание" FontWeight="Bold" Margin="5"/>
    </Grid>
    <TreeView x:Name="IfcTree" SelectedItemChanged="IfcTree_SelectedItemChanged">
     <TreeView.Resources>
      <HierarchicalDataTemplate DataType="{x:Type local:IfcTreeNode}" ItemsSource="{Binding Children}">
       <Grid Width="275">
        <Grid.ColumnDefinitions><ColumnDefinition Width="110"/><ColumnDefinition Width="90"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0" Text="{Binding Type}" TextTrimming="CharacterEllipsis" ToolTip="{Binding Type}"/>
        <TextBlock Grid.Column="1" Text="{Binding Name}" TextTrimming="CharacterEllipsis" ToolTip="{Binding Name}"/>
        <TextBlock Grid.Column="2" Text="{Binding Description}" TextTrimming="CharacterEllipsis" ToolTip="{Binding Description}"/>
       </Grid>
      </HierarchicalDataTemplate>
     </TreeView.Resources>
    </TreeView>
    <TextBlock DockPanel.Dock="Bottom" Text="Выберите элемент; поиск подобных выделяет группу для редактирования" TextWrapping="Wrap" Foreground="Gray" Margin="4,8"/>
   </DockPanel>
   <Border Grid.Column="1" BorderBrush="#CCC" BorderThickness="1" Margin="2">
    <xbim:DrawingControl3D x:Name="Viewer"/>
   </Border>
   <ScrollViewer Grid.Column="2" VerticalScrollBarVisibility="Auto" Margin="10">
    <StackPanel>
     <TextBlock Text="Редактор свойств" FontSize="18" FontWeight="Bold" Margin="0,0,0,12"/>
     <TextBlock x:Name="SelectedCount" Text="Ничего не выбрано" Margin="0,0,0,12"/>
     <TextBlock Text="Набор свойств (Pset)" FontWeight="SemiBold"/>
     <TextBox x:Name="PsetInput" Text="Pset_Custom" Margin="0,4,0,12"/>
     <TextBlock Text="Имя свойства" FontWeight="SemiBold"/>
     <TextBox x:Name="PropertyInput" Text="Mark" Margin="0,4,0,12"/>
     <TextBlock Text="Значение (строка)" FontWeight="SemiBold"/>
     <TextBox x:Name="ValueInput" Margin="0,4,0,12"/>
     <CheckBox x:Name="CreateMissing" IsChecked="True" Content="Создать свойство, если отсутствует" Margin="0,0,0,12"/>
     <Button Content="Применить к выбранным" Click="Apply_Click" Padding="8"/>
     <TextBlock Text="Свойства текущего элемента" FontWeight="Bold" Margin="0,24,0,8"/>
     <DataGrid x:Name="PropertiesGrid" IsReadOnly="True" AutoGenerateColumns="True"
      Height="360" CanUserAddRows="False"/>
     <TextBlock TextWrapping="Wrap" Foreground="Gray" Margin="0,12,0,0"
      Text="Изменения записываются в модель в памяти. Для сохранения используйте «Сохранить как…». Общие Pset отделяются от невыбранных объектов."/>
    </StackPanel>
   </ScrollViewer>
  </Grid>
 </DockPanel>
</Window>