<Border x:Class="SparkClient.Views.Configuration.AlgorithmConfigPage"
        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:hc="https://handyorg.github.io/handycontrol"
        xmlns:local="clr-namespace:SparkClient.Views"
        xmlns:configuration="clr-namespace:SparkClient.Views.Configuration"
        xmlns:system="clr-namespace:System;assembly=System.Runtime"
        mc:Ignorable="d"
        >
    <Border.Resources>
        
        <x:Array x:Key="ShapeList" Type="system:String">
            <system:String>圆形</system:String>
        </x:Array>
    </Border.Resources>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition MinWidth="300" Width="5*" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition MinWidth="300" Width="4*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <!-- 按钮组 -->
        <Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Button Grid.Column="0" Width="100"  Margin=" 10 5 0 5 "  Padding="0"  Height="50" 
                    BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Command="{Binding SaveAlgorithmDataCommand}" IsEnabled="{Binding IsEnabled}">
                <Border HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        Margin="0 0 0 0"
                        Padding="10, 10"
                        Width="100" 
                        BorderThickness="0"
                        CornerRadius="20">
                    <Border.Background>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                            <GradientStop Color="#61bde2" Offset="0"/>
                            <GradientStop Color="#53abd9" Offset="1"/>
                        </LinearGradientBrush>
                    </Border.Background>
                    <TextBlock  Text="{ DynamicResource Save}"  TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock>
                </Border>
            </Button>
            <Button Grid.Column="3" Width="100"  Margin="10 5 "  Padding="0"  Height="50" 
                    BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}"  Command="{Binding BeautifyJsonCommand}">
                <Border HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        Margin="0 0 0 0"
                        Padding="10, 10"
                        Width="100" 
                        BorderThickness="0"
                        CornerRadius="20">
                    <Border.Background>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                            <GradientStop Color="#61bde2" Offset="0"/>
                            <GradientStop Color="#53abd9" Offset="1"/>
                        </LinearGradientBrush>
                    </Border.Background>
                    <TextBlock  Text="{ DynamicResource BeautifyJson}"  TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock>
                </Border>
            </Button>
            <Button Grid.Column="4" Width="100"  Margin="0 5 "  Padding="0"  Height="50" 
                    BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}"  Command="{Binding UglifyJsonCommand}">
                <Border HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        Margin="0 0 0 0"
                        Padding="10, 10"
                        Width="100" 
                        BorderThickness="0"
                        CornerRadius="20">
                    <Border.Background>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                            <GradientStop Color="#61bde2" Offset="0"/>
                            <GradientStop Color="#53abd9" Offset="1"/>
                        </LinearGradientBrush>
                    </Border.Background>
                    <TextBlock  Text="{ DynamicResource UglifyJson}"  TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock>
                </Border>
            </Button>
            <!-- Command="{Binding UglifyJsonCommand}" -->
            <Button Grid.Column="1" Width="100"  Margin="10 5 0 5 "  Padding="0"  Height="50" x:Name="ButtonDelRow"
                    BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}"  Click="ButtonDelRow_OnClick">
                <Border HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        Margin="0 0 0 0"
                        Padding="10, 10"
                        Width="100" 
                        BorderThickness="0"
                        CornerRadius="20">
                    <Border.Background>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                            <GradientStop Color="#61bde2" Offset="0"/>
                            <GradientStop Color="#53abd9" Offset="1"/>
                        </LinearGradientBrush>
                    </Border.Background>
                    <TextBlock  Text="删除行"  TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock>
                </Border>
            </Button>
            <!-- Command="{Binding AddCommand}" -->
            <Button Grid.Column="2" Width="100"  Margin="10 5 0 5 "  Padding="0"  Height="50" x:Name="ButtonAddRow" Command="{Binding AddCommand}"
                    BorderThickness="0" Background="Transparent" FocusVisualStyle="{x:Null}" Click="ButtonAddRow_OnClick" >
                <Border HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        Margin="0 0 0 0"
                        Padding="10, 10"
                        Width="100" 
                        BorderThickness="0"
                        CornerRadius="20">
                    <Border.Background>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                            <GradientStop Color="#61bde2" Offset="0"/>
                            <GradientStop Color="#53abd9" Offset="1"/>
                        </LinearGradientBrush>
                    </Border.Background>
                    <TextBlock  Text="添加行"  TextAlignment="Center" Foreground="#ffffff" FontSize="16"></TextBlock>
                </Border>
            </Button>
        </Grid>
        <!-- 左侧DataGrid -->
        <Grid Grid.Row="1" Grid.Column="0" >
            <DataGrid x:Name="AgileJsonDataGrid" 
                      AutoGenerateColumns="False"
                      ItemsSource="{Binding AgileJsonConfigEntities}"
                      SelectionUnit="FullRow">
                <DataGrid.Columns>
                    <DataGridTemplateColumn Header="运行模式" Width="*">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox ItemsSource="{Binding ModeList}" 
                                          SelectedValue="{Binding Mode.Value}"
                                          DisplayMemberPath="Name"
                                          SelectedIndex="1"
                                          SelectedValuePath="Value"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <DataGridTemplateColumn Header="形状" Width="*">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox IsEnabled="False" 
                                          SelectedItem="圆形"
                                          ItemsSource="{Binding Source={StaticResource ShapeList}}" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <!-- 规格列修正为模板列 -->
                    <DataGridTemplateColumn Header="规格" Width="2*">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <ComboBox ItemsSource="{Binding SpceList}" 
                                          SelectedValue="{Binding Spec.Value}"
                                          DisplayMemberPath="Name"
                                         
                                          SelectedIndex="1"
                                          SelectedValuePath="Value"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                       
                    </DataGridTemplateColumn>
                    <!-- JSON Key列(带自动完成) -->
                    <DataGridTemplateColumn Header="JSON Key" Width="3*" >
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <hc:AutoCompleteTextBox IsTextSearchEnabled="True" Text="{Binding JsonKey, Mode=TwoWay}"
                                                        ItemsSource="{Binding JsonKeys}" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>

                    <!-- 动态Value列 -->
                    <DataGridTextColumn Header="动态Value" Binding="{Binding Value}" Width="2*"/>
                </DataGrid.Columns>
            </DataGrid>
        </Grid>
        <!-- 中间 -->
        <GridSplitter Grid.Row="1" Grid.Column="1" Width="5" HorizontalAlignment="Stretch" Background="Transparent" />
        <!-- 右侧json -->
        <Grid Grid.Row="1" Grid.Column="2" Background="Transparent" >
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <!-- <TextBlock Grid.Row="0"/> -->
            <avalonEdit:TextEditor Grid.Row="1"
                                   xmlns:avalonEdit="http://icsharpcode.net/sharpdevelop/avalonedit"
                                   Name="TextEditor"
                                   SyntaxHighlighting="JSON"
                                   FontFamily="Consolas"
                                   FontSize="16pt"
                                   LineNumbersForeground="Black"
                                   TextChanged="TextEditor_OnTextChanged"
                                   ShowLineNumbers="True" >
                <avalonEdit:TextEditor.Options>
                    <avalonEdit:TextEditorOptions ShowSpaces="True" />
                </avalonEdit:TextEditor.Options>
            </avalonEdit:TextEditor>
        </Grid>
    </Grid>
</Border>