<UserControl x:Class="SettingModule.Views.Dialogs.TCPConfigView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:SettingModule.Views.Dialogs"
             xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
             xmlns:helpers="clr-namespace:UIShare.Helpers;assembly=UIShare"
             xmlns:converters="clr-namespace:UIShare.Converters;assembly=UIShare"
             mc:Ignorable="d"
             xmlns:prism="http://prismlibrary.com/"
             Background="White"
             prism:ViewModelLocator.AutoWireViewModel="True"
             Width="420"
             Height="320">
    <prism:Dialog.WindowStyle>
        <Style BasedOn="{StaticResource DialogUserManageStyle}"
            TargetType="Window" />
    </prism:Dialog.WindowStyle>

    <UserControl.Resources>
        <converters:StringToVisibilityConverter x:Key="StringToVisibility"/>
    </UserControl.Resources>

    <GroupBox Padding="12,8,12,8"
              helpers:WindowDragHelper.EnableWindowDrag="True">
        <GroupBox.Header>
            <Grid  Margin="0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition />
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <TextBlock Text="{Binding Title}"
                       Foreground="White"
                       VerticalAlignment="Center"
                       Margin="5,0,10,0" />
            </Grid>
        </GroupBox.Header>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>

            <!-- 表单 -->
            <Grid Grid.Row="0" Margin="0,4,0,0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="100"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <TextBlock Grid.Row="0" Grid.Column="0"
                           Text="IP 地址："
                           VerticalAlignment="Center" Margin="0,6"/>
                <TextBox Grid.Row="0" Grid.Column="1" Margin="0,6"
                          materialDesign:HintAssist.Hint=""
                         Text="{Binding Config.IPAddress, UpdateSourceTrigger=PropertyChanged}"/>

                <TextBlock Grid.Row="1" Grid.Column="0"
                           Text="端口："
                           VerticalAlignment="Center" Margin="0,6"/>
                <ComboBox Grid.Row="1" Grid.Column="1" Margin="0,6"
                          IsEditable="True"
                           materialDesign:HintAssist.Hint=""
                          ItemsSource="{Binding CommonPorts}"
                          Text="{Binding Config.Port, UpdateSourceTrigger=PropertyChanged}"/>

                <TextBlock Grid.Row="2" Grid.Column="0"
                           Text="发送超时(ms)："
                           VerticalAlignment="Center" Margin="0,6"/>
                <ComboBox Grid.Row="2" Grid.Column="1" Margin="0,6"
                          IsEditable="True"
                           materialDesign:HintAssist.Hint=""
                          ItemsSource="{Binding CommonTimeouts}"
                          Text="{Binding Config.SendTimeout, UpdateSourceTrigger=PropertyChanged}"/>

                <TextBlock Grid.Row="3" Grid.Column="0"
                           Text="接收超时(ms)："
                           VerticalAlignment="Center" Margin="0,6"/>
                <ComboBox Grid.Row="3" Grid.Column="1" Margin="0,6"
                          IsEditable="True"
                           materialDesign:HintAssist.Hint=""
                          ItemsSource="{Binding CommonTimeouts}"
                          Text="{Binding Config.ReceiveTimeout, UpdateSourceTrigger=PropertyChanged}"/>
            </Grid>

            <!-- 错误提示 -->
            <TextBlock Grid.Row="1"
                       Margin="0,8,0,0"
                       Foreground="#D32F2F"
                       TextWrapping="Wrap"
                       Text="{Binding ErrorMessage}"
                       Visibility="{Binding ErrorMessage, Converter={StaticResource StringToVisibility}}"/>

            <!-- 按钮 -->
            <StackPanel Grid.Row="2"
                        Orientation="Horizontal"
                        HorizontalAlignment="Right"
                        Margin="0,12,0,0">
                <Button Content="取消"
                        Width="80" Padding="0,4"
                        Command="{Binding CancelCommand}"/>
                <Button Content="保存"
                        Width="80" Padding="0,4"
                        Margin="10,0,0,0"
                        IsDefault="True"
                        Command="{Binding SaveCommand}"/>
            </StackPanel>
        </Grid>
    </GroupBox>
</UserControl>
