Текст ошибки проверки данных отображается внутри TemplatedControl, но внутренний TextBox не имеет границыC#

Место общения программистов C#
Ответить
Anonymous
 Текст ошибки проверки данных отображается внутри TemplatedControl, но внутренний TextBox не имеет границы

Сообщение Anonymous »

Я использую собственный TemplatedControl в Avalonia. При привязке его свойства к моей модели представления выполняется проверка данных, но я не вижу полных изображений ошибок проверки. Во внутреннем текстовом поле элемента управления я вижу текст ошибки, однако граница не отображается.

Код: Выделить всё

Themes/Generic.axaml
:

Код: Выделить всё

Controls/PathBox.cs
:

Код: Выделить всё

using System;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using Avalonia.Data;

namespace Dashavalanche.UI.Controls;

public class PathBox : TemplatedControl
{
public static readonly DirectProperty PathProperty =
AvaloniaProperty.RegisterDirect(
nameof(Path), o => o.Path, (o, v) => o.Path = v, defaultBindingMode: BindingMode.TwoWay, enableDataValidation: true);
private string? _path;

public string? Path
{
get => _path;
set => SetAndRaise(PathProperty, ref _path, value);
}

public static readonly StyledProperty WatermarkProperty =
AvaloniaProperty.Register(nameof(Watermark));

public string? Watermark
{
get => GetValue(WatermarkProperty);
set => SetValue(WatermarkProperty, value);
}

protected override void UpdateDataValidation(AvaloniaProperty property, BindingValueType state, Exception? error)
{
base.UpdateDataValidation(property, state, error);

if (property == PathProperty)
{
DataValidationErrors.SetError(this, error);
}
}
}
Использование: На снимке экрана PathBox находится сверху, а внизу — обычный TextBox, привязанный к свойству с той же проверкой данных.
Изображение

В логических и визуальных деревьях в DevTools PathBox имеет псевдокласс :error, а внутренний TextBox — нет.
Использование Avalonia 11.3.12, .NET 8.

Подробнее здесь: https://stackoverflow.com/questions/799 ... textbox-do
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»