Creada una UserControl para PanelEdicion que permita la edicion de los objetos
This commit is contained in:
parent
8a5ebe6ac6
commit
e14c28920f
|
@ -1,8 +1,9 @@
|
|||
<UserControl x:Class="CtrEditor.ObjectHierarchyView"
|
||||
<UserControl x:Class="CtrEditor.Controls.ObjectHierarchyView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:oh="clr-namespace:CtrEditor"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:controls="clr-namespace:CtrEditor.Controls"
|
||||
mc:Ignorable="d">
|
||||
<Grid>
|
||||
<TreeView x:Name="ObjectsTreeView" ItemsSource="{Binding RootNodes}"
|
|
@ -1,9 +1,9 @@
|
|||
using CtrEditor.ObjetosSim;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows; // Add this for RoutedPropertyChangedEventArgs
|
||||
using System.Windows;
|
||||
|
||||
namespace CtrEditor
|
||||
namespace CtrEditor.Controls
|
||||
{
|
||||
public partial class ObjectHierarchyView : UserControl
|
||||
{
|
|
@ -0,0 +1,131 @@
|
|||
<UserControl x:Class="CtrEditor.Controls.PanelEdicionControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:ObjetosSim="clr-namespace:CtrEditor.ObjetosSim"
|
||||
xmlns:ObjetosExtraccion="clr-namespace:CtrEditor.ObjetosSim.Extraccion_Datos"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<xctk:PropertyGrid x:Name="PropertyGridControl"
|
||||
Margin="5"
|
||||
AutoGenerateProperties="False"
|
||||
ShowDescriptionByTooltip="True"
|
||||
FocusManager.IsFocusScope="True">
|
||||
<xctk:PropertyGrid.EditorDefinitions>
|
||||
<!-- String -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type sys:String}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
|
||||
Text="{Binding Value}" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- Float -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type sys:Single}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<xctk:SingleUpDown Increment="0.01"
|
||||
Text="{Binding Value, Converter={StaticResource floatFormatter}}" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- Double -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type sys:Double}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding Value, Converter={StaticResource doubleFormatter}}" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- Velocidad -->
|
||||
<xctk:EditorTemplateDefinition TargetProperties="VelocidadActual">
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<xctk:SingleUpDown Increment="0.01" Background="Beige"
|
||||
Text="{Binding Value, Converter={StaticResource floatFormatter}}"
|
||||
FontWeight="Bold" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- File Dialog -->
|
||||
<xctk:EditorTemplateDefinition TargetProperties="ImagePath">
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox Grid.Column="0"
|
||||
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Button Grid.Column="1" Content="..." Width="25" Margin="2,0,0,0"
|
||||
Click="ImagePathButton_Click" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- osBuscarCoincidencias -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type ObjetosExtraccion:osBuscarCoincidencias}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox ItemsSource="{Binding DataContext.ObjetosSimulables,
|
||||
RelativeSource={RelativeSource AncestorType=Window},
|
||||
Converter={StaticResource SubclassFilterConverterosBuscarCoincidencias}}"
|
||||
SelectedItem="{Binding Value}" DisplayMemberPath="Nombre" IsEditable="True" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- osVMmotorSim -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type ObjetosSim:osVMmotorSim}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox ItemsSource="{Binding DataContext.ObjetosSimulables,
|
||||
RelativeSource={RelativeSource AncestorType=Window},
|
||||
Converter={StaticResource SubclassFilterConverterosVMMotor}}"
|
||||
SelectedItem="{Binding Value}" DisplayMemberPath="Nombre" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- osBase -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type ObjetosSim:osBase}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox
|
||||
ItemsSource="{Binding DataContext.ObjetosSimulables, RelativeSource={RelativeSource AncestorType=Window}}"
|
||||
SelectedItem="{Binding Value}" DisplayMemberPath="Nombre" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
</xctk:PropertyGrid.EditorDefinitions>
|
||||
</xctk:PropertyGrid>
|
||||
</UserControl>
|
|
@ -0,0 +1,40 @@
|
|||
using CtrEditor.ObjetosSim;
|
||||
using Ookii.Dialogs.Wpf;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using Xceed.Wpf.Toolkit.PropertyGrid;
|
||||
|
||||
namespace CtrEditor.Controls
|
||||
{
|
||||
public partial class PanelEdicionControl : UserControl
|
||||
{
|
||||
public PanelEdicionControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public void CargarPropiedades(osBase selectedObject)
|
||||
{
|
||||
UserControlFactory.CargarPropiedadesosDatos(selectedObject, PropertyGridControl);
|
||||
}
|
||||
|
||||
public bool IsKeyboardFocusWithin => PropertyGridControl.IsKeyboardFocusWithin;
|
||||
|
||||
private void ImagePathButton_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var dlg = new VistaOpenFileDialog
|
||||
{
|
||||
Filter = "Image files (*.png;*.jpg;*.bmp)|*.png;*.jpg;*.bmp|All files (*.*)|*.*"
|
||||
};
|
||||
|
||||
if (dlg.ShowDialog() == true)
|
||||
{
|
||||
// El DataContext de este botón es el PropertyItem asociado
|
||||
if ((sender as Button)?.DataContext is PropertyItem propertyItem)
|
||||
{
|
||||
propertyItem.Value = dlg.FileName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -847,9 +847,9 @@ namespace CtrEditor
|
|||
}
|
||||
|
||||
// Se cargan los datos de cada UserControl en el StackPanel
|
||||
public void CargarPropiedadesosDatos(osBase selectedObject, PropertyGrid PanelEdicion, ResourceDictionary Resources)
|
||||
public void CargarPropiedadesosDatos(osBase selectedObject, Controls.PanelEdicionControl PanelEdicion, ResourceDictionary Resources)
|
||||
{
|
||||
UserControlFactory.CargarPropiedadesosDatos(selectedObject, PanelEdicion);
|
||||
PanelEdicion.CargarPropiedades(selectedObject);
|
||||
}
|
||||
|
||||
private RelayCommand saveCommand;
|
||||
|
|
130
MainWindow.xaml
130
MainWindow.xaml
|
@ -3,8 +3,8 @@
|
|||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:Siemens="clr-namespace:LibS7Adv;assembly=LibS7Adv"
|
||||
xmlns:local="clr-namespace:CtrEditor"
|
||||
xmlns:oh="clr-namespace:CtrEditor"
|
||||
xmlns:local="clr-namespace:CtrEditor"
|
||||
xmlns:controls="clr-namespace:CtrEditor.Controls"
|
||||
xmlns:uc="clr-namespace:CtrEditor.ObjetosSim.UserControls"
|
||||
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
|
@ -291,133 +291,15 @@
|
|||
<!-- GridSplitter -->
|
||||
<GridSplitter Grid.Row="3" Height="5" HorizontalAlignment="Stretch" Background="Gray"
|
||||
ResizeDirection="Rows" VerticalAlignment="Center" />
|
||||
<oh:ObjectHierarchyView x:Name="ObjectHierarchy" Grid.Row="4" Margin="5" />
|
||||
<controls:ObjectHierarchyView x:Name="ObjectHierarchy" Grid.Row="4" Margin="5" />
|
||||
<!-- GridSplitter -->
|
||||
<GridSplitter Grid.Row="5" Height="5" HorizontalAlignment="Stretch" Background="Gray"
|
||||
ResizeDirection="Rows" VerticalAlignment="Center" />
|
||||
|
||||
<!-- PanelEdicion -->
|
||||
<xctk:PropertyGrid Grid.Row="6"
|
||||
Margin="5"
|
||||
x:Name="PanelEdicion"
|
||||
AutoGenerateProperties="False"
|
||||
ShowDescriptionByTooltip="True"
|
||||
FocusManager.IsFocusScope="True">
|
||||
<xctk:PropertyGrid.EditorDefinitions>
|
||||
|
||||
<!-- String -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type sys:String}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
|
||||
Text="{Binding Value}" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- Velocidad -->
|
||||
<xctk:EditorTemplateDefinition TargetProperties="VelocidadActual">
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<xctk:SingleUpDown Increment="0.01" Background="Beige"
|
||||
Text="{Binding Value, Converter={StaticResource floatFormatter}}"
|
||||
FontWeight="Bold" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- Float -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type sys:Single}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<xctk:SingleUpDown Increment="0.01"
|
||||
Text="{Binding Value, Converter={StaticResource floatFormatter}}" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- Double -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type sys:Double}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<TextBox Text="{Binding Value, Converter={StaticResource doubleFormatter}}" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- osBuscarCoincidencias -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type ObjetosExtraccion:osBuscarCoincidencias}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox ItemsSource="{Binding DataContext.ObjetosSimulables,
|
||||
RelativeSource={RelativeSource AncestorType=Window},
|
||||
Converter={StaticResource SubclassFilterConverterosBuscarCoincidencias}}"
|
||||
SelectedItem="{Binding Value}" DisplayMemberPath="Nombre" IsEditable="True" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- osVMmotorSim -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type ObjetosSim:osVMmotorSim}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox ItemsSource="{Binding DataContext.ObjetosSimulables,
|
||||
RelativeSource={RelativeSource AncestorType=Window},
|
||||
Converter={StaticResource SubclassFilterConverterosVMMotor}}"
|
||||
SelectedItem="{Binding Value}" DisplayMemberPath="Nombre" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- File Dialog -->
|
||||
<xctk:EditorTemplateDefinition TargetProperties="ImagePath">
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBox Grid.Column="0"
|
||||
Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
|
||||
<Button Grid.Column="1" Content="..." Width="25" Margin="2,0,0,0"
|
||||
Click="ImagePathButton_Click" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
<!-- osBase -->
|
||||
<xctk:EditorTemplateDefinition>
|
||||
<xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:TargetPropertyType Type="{x:Type ObjetosSim:osBase}" />
|
||||
</xctk:EditorTemplateDefinition.TargetProperties>
|
||||
<xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
<DataTemplate>
|
||||
<ComboBox
|
||||
ItemsSource="{Binding DataContext.ObjetosSimulables, RelativeSource={RelativeSource AncestorType=Window}}"
|
||||
SelectedItem="{Binding Value}" DisplayMemberPath="Nombre" />
|
||||
</DataTemplate>
|
||||
</xctk:EditorTemplateDefinition.EditingTemplate>
|
||||
</xctk:EditorTemplateDefinition>
|
||||
|
||||
</xctk:PropertyGrid.EditorDefinitions>
|
||||
</xctk:PropertyGrid>
|
||||
<controls:PanelEdicionControl Grid.Row="6"
|
||||
x:Name="PanelEdicion"
|
||||
Margin="5"/>
|
||||
|
||||
<ToolBarTray Grid.Row="7">
|
||||
<ToolBar>
|
||||
|
|
|
@ -10,6 +10,7 @@ using System.Windows.Shapes;
|
|||
using System.Windows.Threading;
|
||||
using MouseEventArgs = System.Windows.Input.MouseEventArgs;
|
||||
using UserControl = System.Windows.Controls.UserControl;
|
||||
using CtrEditor.Controls; // Add this using statement
|
||||
|
||||
namespace CtrEditor
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue