diff --git a/Source/LibationAvalonia/Controls/DataGridTextColumnExt.cs b/Source/LibationAvalonia/Controls/DataGridTextColumnExt.cs new file mode 100644 index 00000000..5768c724 --- /dev/null +++ b/Source/LibationAvalonia/Controls/DataGridTextColumnExt.cs @@ -0,0 +1,25 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Interactivity; + +namespace LibationAvalonia.Controls; +internal class DataGridTextColumnExt : DataGridTextColumn +{ + public static readonly StyledProperty MaxLengthProperty = + AvaloniaProperty.Register(nameof(MaxLength)); + + public int MaxLength + { + get => GetValue(MaxLengthProperty); + set => SetValue(MaxLengthProperty, value); + } + + protected override object PrepareCellForEdit(Control editingElement, RoutedEventArgs editingEventArgs) + { + if (editingElement is TextBox textBox) + { + textBox.MaxLength = MaxLength; + } + return base.PrepareCellForEdit(editingElement, editingEventArgs); + } +} diff --git a/Source/LibationAvalonia/Dialogs/EditReplacementChars.axaml b/Source/LibationAvalonia/Dialogs/EditReplacementChars.axaml index f60f2f16..67e257d8 100644 --- a/Source/LibationAvalonia/Dialogs/EditReplacementChars.axaml +++ b/Source/LibationAvalonia/Dialogs/EditReplacementChars.axaml @@ -2,92 +2,80 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - mc:Ignorable="d" d:DesignWidth="500" d:DesignHeight="450" - MinWidth="500" MinHeight="450" - Width="500" Height="450" + mc:Ignorable="d" d:DesignWidth="450" d:DesignHeight="450" + MinWidth="450" MinHeight="450" + Width="450" Height="450" x:Class="LibationAvalonia.Dialogs.EditReplacementChars" xmlns:dialogs="clr-namespace:LibationAvalonia.Dialogs" + xmlns:controls="clr-namespace:LibationAvalonia.Controls" x:DataType="dialogs:EditReplacementChars" - Title="Illegal Character Replacement"> - - + x:CompileBindings="True" + Title="File Path Character Replacement"> + - + GridLinesVisibility="All" + CanUserSortColumns="False" + AutoGenerateColumns="False" + ItemsSource="{Binding Replacements}" + KeyDown="replacementGrid_KeyDown" + BeginningEdit="replacementGrid_BeginningEdit" + CellEditEnded="replacementGrid_CellEditEnded" + CellEditEnding="replacementGrid_CellEditEnding"> - - - - - - - - - - - - - - - + - - - - - - - + + + + ColumnDefinitions="Auto,Auto,Auto,*,Auto,Auto" + Margin="5"> + + + + - - + + -