Проверка ComboBox SelectedValuePath не работаетC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Проверка ComboBox SelectedValuePath не работает

Сообщение Anonymous »


I am trying to implement data validation in XAML / WPF for the very first time. I have read several tutorials and there seems to be a variety of ways to do it. I have settled on one approach and it is not working.

First, this is ideally how I would like the error displayed (above the ComboBox and to the right of the Label). If that is possible ...


Изображение


I created a ValidationRule:

using System; using System.Globalization; using System.Windows.Controls; namespace OCLMEditor.ValidationRules { class StudyPointValidationRule : ValidationRule { public bool BibleReading { get; set; } public StudyPointValidationRule() { BibleReading = false; } public override ValidationResult Validate(object value, CultureInfo cultureInfo) { if(value == null) return new ValidationResult(false, "The study point has not been set."); int iStudy = (int)value; if(BibleReading) { if(iStudy > 17) return new ValidationResult(false, "Maximum study point for bible readings is 17."); } else { if(iStudy == 7 || iStudy > 51) return new ValidationResult(false, "Study points 7, 52 and 53 are not permitted for student items."); } return new ValidationResult(true, null); } } } Then, I added this to my Window class in XAML:

xmlns:ValidationRules="clr-namespace:OCLMEditor.ValidationRules": In the Window.Resources:

! Then, for my first ComboBox where I want this validation applied I changed it from:

To:

I get this error:

System.Windows.Data Error: 40 : BindingExpression path error: 'Number' property not found on 'object' ''OCLMEditorViewModel' (HashCode=17586541)'. BindingExpression:Path=Number; DataItem='OCLMEditorViewModel' (HashCode=17586541); target element is 'ComboBox' (Name=''); target property is 'SelectedValuePath' (type 'String')

I don't understand why because I was able to use "Number" previously.
Update
I have extended my Model Data classes to throw an exception if the value is too high. For example:

[XmlIgnore] public int BibleReadingMainStudyPoint { get { return _TFGW.BibleReadingItem.Main.StudyPoint; } set { if (value > 17) throw new ArgumentOutOfRangeException("Maximum Bible reading study point is 17."); _TFGW.BibleReadingItem.Main.StudyPoint = value; MarkDirty(); OnPropertyChanged("BibleReadingMainStudyPoint"); } } I definately get the exception thrown:

Parameter name: Maximum Bible reading study point is 17. at OCLMEditor.Data.MeetingInfo.Meeting.set_BibleReadingMainStudyPoint(Int32 value) in D:\My Programs\OCLMEditor\OCLMEditor\Data\MeetingInfo\Meeting.cs:line 234 at OCLMEditor.OCLMEditorViewModel.set_SelectedStudentItem(Student value) in D:\My Programs\OCLMEditor\OCLMEditor\ViewModels\OCLMEditorViewModel.cs:line 184'

And I changed the XAMl since the ValidationRule does not apply in this instance:

So I was expecting it to now show the error visually. No nothing on screen.

The resources:

! Update 2 I can just make out that there is a validation symbol on teh screen. But it has not reduced the width of the combo so it can be seen.


Источник: https://stackoverflow.com/questions/383 ... ot-working
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Привязка WPF Combobox и SelectedValue с SelectedValuePath
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Привязка WPF Combobox и SelectedValue с SelectedValuePath
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Avalonia.ui combobox, без дисплея или SelectedValuePath. Шаблонконтроль
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Связывание и выбранное значение WPF с SelectedValuePath
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • DataGridTemplateColumn с ComboBox, не заполняющимся начальным значением из источника DataGrid, когда источником ComboBox
    Anonymous » » в форуме C#
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous

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