powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGrid.IsValid???
8 сообщений из 8, страница 1 из 1
DataGrid.IsValid???
    #36836916
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://msdn.microsoft.com/ru-ru/library/system.windows.controls.datagrid(v=VS.95).aspx
Проверка

DataGrid поддерживает проверку свойства на уровне ячейки и проверку объекта на уровне строки. Если исключение проверки встречается в установщике свойства, элемент управления для редактирования ячейки отображает состояние ошибки. Для свойств DataGridCell..::..IsValid, DataGridRow..::..IsValid и DataGrid..::..IsValid задано значение false. DataGrid не завершит режим редактирования ячейки, пока не устранена ошибка проверки.


Код: plaintext
1.
2.
3.
4.
5.
6.
DataGrid dgr = new DataGrid()
            {               
                DataContext = ds.Tables[0],
                ItemsSource = ds.Tables[0].DefaultView,
                AutoGenerateColumns = false
            };
как узнать что грид содержит ошибки? Validation.GetHasError(dgr) - не работает, свойства IsValid нет такого у него (грид из WPFToolkit, FW 3.5 sp1)
...
Рейтинг: 0 / 0
DataGrid.IsValid???
    #36837731
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неужели никому не нужна была такая проверка?
...
Рейтинг: 0 / 0
DataGrid.IsValid???
    #36837876
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koJIo6ok,

"DataGrid поддерживает проверку", но не осуществляет ее (как и многие другие контролы)...
копать надо System.ComponentModel.DataAnnotations Namespace, Validator, ValidationAttribute
...
Рейтинг: 0 / 0
DataGrid.IsValid???
    #36837922
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
koJIo6okнеужели никому не нужна была такая проверка?
Подобные проверки в самом гриде, действительно, никому не нужны.
...
Рейтинг: 0 / 0
DataGrid.IsValid???
    #36837925
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LRкопать надо System.ComponentModel.DataAnnotations Namespace, Validator, ValidationAttribute
а вообще "validation error" порождается разными способами
для SLExceptions thrown from the binding engine's type converter.
Exceptions thrown from the binding object's set accessor.
Exceptions thrown from a validation attribute that is applied to a data object or member.
...
Рейтинг: 0 / 0
DataGrid.IsValid???
    #36838041
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ikoJIo6okнеужели никому не нужна была такая проверка?
Подобные проверки в самом гриде, действительно, никому не нужны.
ну почему же, сам грид же их и использует - если в одной ячейке внесенные данные непрошли проверку, то грид разрешает править только одну эту ячейку
хотель бы это и узнать, чтобы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
void cmmGrid_CanExecute(object sender, CanExecuteRoutedEventArgs e)
   {
      if(Grid.IsValid)
        {
           e.CanExecute = true;
        }
      else
        {
            e.CanExecute = false;
        }
   }
...
Рейтинг: 0 / 0
DataGrid.IsValid???
    #36838499
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как так? на
Код: plaintext
1.
2.
3.
4.
foreach (DataRow row in dgr.Items)
            {
                //
            }
пишет - Не удалось привести тип объекта "System.Data.DataRowView" к типу "System.Data.DataRow".
а на
Код: plaintext
1.
2.
3.
4.
foreach (DataRowView row in dgr.Items)
            {
                //
            }
- Не удалось привести тип объекта "MS.Internal.NamedObject" к типу "System.Data.DataRowView".
...
Рейтинг: 0 / 0
DataGrid.IsValid???
    #36838606
koJIo6ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, всетаки я его поборол :))
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Binding bind = new Binding("summa") { Mode = BindingMode.TwoWay, Converter = new myConverterDecimalString(), ConverterParameter = "{0:N0}", ValidatesOnDataErrors = true };
bind.ValidationRules.Add(new AllDecimalRule(0, 999999999999));
Style stEdit = new Style(typeof(TextBox));
stEdit.Setters.Add(new Setter(TextBox.MaxLengthProperty, 15));
stEdit.Setters.Add(new Setter(TextBox.TextAlignmentProperty, TextAlignment.Right));
Style st = new Style(typeof(TextBlock));
st.Setters.Add(new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Right));
dgr.Columns.Add(new DataGridTextColumn()
   {
      Header = "summa",
      EditingElementStyle = stEdit,
      ElementStyle = st,
      Binding = bind,
      MinWidth = 110.0,
      MaxWidth = 110.0
   });
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 bool DataGridIsValid()
        {
            bool _value = true;

            for (byte b =  0 ; b < dgr.Items.Count; b++)
            {
                foreach (DataGridColumn col in dgr.Columns)
                {
                    if (Validation.GetHasError(col.GetCellContent(dgr.Items[b])))
                    {
                        _value = false;
                    }
                }
            }

            return _value;
        }
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
void cmmGrid_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            switch ((myEnumButton)e.Parameter)
            { 
                case myEnumButton.save:
                    e.CanExecute = DataGridIsValid();
                    break;                    
                case myEnumButton.refresh:
                case myEnumButton.undo:
                    e.CanExecute = true;
                    break;
            }            
        }
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / DataGrid.IsValid???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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