locked
איך אני מפעיל את ה- ValidationRule אחרי שהוספתי אותו ל- Binding באופו דינמי RRS feed

  • שאלה

  • BindingExpression binding = BindingOperations.GetBindingExpression(d, dp);
    binding.ParentBinding.ValidationRules.Add(_validationRule);
    
    איך אני גורם לכך שה- ValidationRule יעבוד בלי לשנות את הפרופרטי ובלי לעשות UpdateSource()
    


    • נערך על-ידי Elad R Katz יום ראשון 19 פברואר 2012 11:01 תיקון קוד
    יום רביעי 15 פברואר 2012 14:50

תשובות

  • היי תומר!

    אני רוצה להראות ואלידציה אחרי שאני מוסיף את ה- Rule

    מכיוון שאין PropertyChange ה- Rule לא פועל ואני לא רואה ואלידציה

    אבל כנראה שאין איזה מטודה אז פתרתי את זה כך:

    BindingExpression binding = BindingOperations.GetBindingExpression(d, dp);binding.ParentBinding.ValidationRules.Add(_validationRuleif (binding.Status == BindingStatus.Active)
    				{
    					var error = _validationRule.Validate(binding, null);
    					if (!error.IsValid)
    					{
    						var error1 = new ValidationError(DummyValidationRule.Default, binding)
    						             	{
    						             		ErrorContent = error.ErrorContent
    						             	};
    
    						System.Windows.Controls.Validation.MarkInvalid(binding, error1);
    					}
    				}

    פשוט הפעלתי ידנית את ה- Validate של ה- Rule ובמידה ויש שגיאה עשיתי MarkInvalid

    תודה


    • נערך על-ידי Elad R Katz יום ראשון 19 פברואר 2012 11:02 תיקון קוד
    • סומן כתשובה על-ידי Elad R Katz יום ראשון 26 פברואר 2012 12:03
    יום חמישי 16 פברואר 2012 09:51

כל התגובות

  • אתה לא יכול! אפשר להבין מה הרציונל מאחורי?


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    יום רביעי 15 פברואר 2012 19:46
    מנחה דיון
  • היי תומר!

    אני רוצה להראות ואלידציה אחרי שאני מוסיף את ה- Rule

    מכיוון שאין PropertyChange ה- Rule לא פועל ואני לא רואה ואלידציה

    אבל כנראה שאין איזה מטודה אז פתרתי את זה כך:

    BindingExpression binding = BindingOperations.GetBindingExpression(d, dp);binding.ParentBinding.ValidationRules.Add(_validationRuleif (binding.Status == BindingStatus.Active)
    				{
    					var error = _validationRule.Validate(binding, null);
    					if (!error.IsValid)
    					{
    						var error1 = new ValidationError(DummyValidationRule.Default, binding)
    						             	{
    						             		ErrorContent = error.ErrorContent
    						             	};
    
    						System.Windows.Controls.Validation.MarkInvalid(binding, error1);
    					}
    				}

    פשוט הפעלתי ידנית את ה- Validate של ה- Rule ובמידה ויש שגיאה עשיתי MarkInvalid

    תודה


    • נערך על-ידי Elad R Katz יום ראשון 19 פברואר 2012 11:02 תיקון קוד
    • סומן כתשובה על-ידי Elad R Katz יום ראשון 26 פברואר 2012 12:03
    יום חמישי 16 פברואר 2012 09:51
  • מה רע בלהפעיל UpdateSource אחרי שאתה מוסיף את ה-Rule?

    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    יום שישי 17 פברואר 2012 09:56
    מנחה דיון