powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Описание TextBox c учетом ValidationRules, определенного как ExceptionValidationRule
5 сообщений из 5, страница 1 из 1
Описание TextBox c учетом ValidationRules, определенного как ExceptionValidationRule
    #39470982
ASukhov1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В окне есть textBox, описанный следующим кодом:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<TextBox Grid.Column="1" Grid.Row="1" Height="30"  Margin="0 0 15 0" >
            <TextBox.Text>
                <Binding Path="Age">
                    <Binding.ValidationRules>
                        <ExceptionValidationRule />
                    </Binding.ValidationRules>
                </Binding>
            </TextBox.Text>
</TextBox>


В cs файле данного окна есть строчка:
Код: c#
1.
DataContext = new PersonModel();


Класс PersonalModel:
Код: c#
1.
2.
3.
4.
5.
6.
public class PersonModel
{
        public string Name { get; set; }
        public int Age { get; set; }
        public string Position { get; set; }
}


Вопрос: как можно описать TextBox в XAML , чтобы ValidationRules была в расположена как то так:
Код: xml
1.
<TextBox Grid.Column="1" Grid.Row="1" Height="30"  Margin="0 0 15 0" Text="{Binding Path=Age ValidationRules=.???}"/>
...
Рейтинг: 0 / 0
Описание TextBox c учетом ValidationRules, определенного как ExceptionValidationRule
    #39471180
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASukhov1986,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<Window x:Class="WpfApp4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        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"
        xmlns:local="clr-namespace:WpfApp4"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525"
        DataContext="{StaticResource MainModel}">
    <Window.Resources>
        <ExceptionValidationRule  x:Key="MyRule" />
    </Window.Resources>
    <Grid>
        <StackPanel>
            <TextBox Text="{local:MyBinding Test, ValidationRule={StaticResource MyRule}}"/>
        </StackPanel>
    </Grid>
</Window>


Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
using System.Windows.Controls;
using System.Windows.Data;

namespace WpfApp4
{
    public class MyBinding : Binding
    {
        public MyBinding() { }
        public MyBinding(string path) : base(path) { }

        ValidationRule _validationRule;

        public ValidationRule ValidationRule
        {
            get
            {
                return _validationRule;
            }

            set
            {
                if (value != null)
                {
                    ValidationRules.Add(value);
                }
                else
                {
                    ValidationRules.Remove(_validationRule);
                }
                _validationRule = value;


            }
        }
    }
}
...
Рейтинг: 0 / 0
Описание TextBox c учетом ValidationRules, определенного как ExceptionValidationRule
    #39471181
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это только пример, дальше дерзайте сами :) ValidationRules не имеет Setter'а, по этому присвоить значение ему не возможно, так как это коллекция, когда XAML код парсится, элементы добавляются через Add в эту коллекцию.
...
Рейтинг: 0 / 0
Описание TextBox c учетом ValidationRules, определенного как ExceptionValidationRule
    #39471423
ASukhov1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,

Спасибо попробую, хотя кода явно стало больше:)
...
Рейтинг: 0 / 0
Описание TextBox c учетом ValidationRules, определенного как ExceptionValidationRule
    #39471450
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASukhov1986,

про то, что в WPF можно всё сделать через XAML это сказки дядюшки АУ, к сожалению, когда начинаешь плотно работать оказывается, что очень и очень многое приходится реализовывать через код, а когда производительность играет большую роль приходится даже Render'инг делать ручками.
ну и кастомные MarkupExtension'ы это круто, а не плохо =) это добавляет гибкости и удобства.
На просторах интернета полно всемозможных расширений разметки, есть даже Binding с поддержкой Expression.
Где можно записывать примерно след. обрадом: {Binding Age+20*Multiply}, и многое другое.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Описание TextBox c учетом ValidationRules, определенного как ExceptionValidationRule
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]