종속성 속성에 대한 좋은 이유를 파악하는 데 어려움을 겪고 있습니다. System.Controls.TextBox "Text"속성이 종속 속성이 아닌 일반 속성이 아닌 이유는 무엇입니까? 의존성 속성이되면 어떤 이점이 있습니까?종속성 속성 WPF에서 사용
내가 수행하려고하는 것 중 하나는 다른 유효성 검사 규칙이 포함될 UserControl에 ValidationRules 속성을 추가하는 것입니다. 여기처럼 :
<customControls:RequiredTextBox.ValidationRules>
<validators:NotNullOrEmptyValidationRule ErrorMessage="FirstName cannot be null or empty"/>
</customControls:RequiredTextBox.ValidationRules>
ValidationRules 속성이 DependencyProperty인지 아니면 일반 속성이어야하는지 여부는 잘 모르겠다. 여기
{"Cannot add element to 'ValidationRules'; the property value is null. Error at object 'LearningWPF.ValidationRules.NotNullOrEmptyValidationRule' in markup file 'LearningWPF;component/addcustomerwindow.xaml' Line 35 Position 66."}
을 ValidationRules 속성입니다 :
위의 코드는 다음과 같은 오류를 제공합니다 당신이 속성 값을 채우는 데 바인딩을 사용하려는 경우 종속성 속성이 필요합니다
public static readonly DependencyProperty ValidationRulesProperty =
DependencyProperty.Register("ValidationRules",
typeof (Collection<ValidationRule>), typeof (RequiredTextBox),
new FrameworkPropertyMetadata(null));
public Collection<ValidationRule> ValidationRules
{
get { return (Collection<ValidationRule>)GetValue(ValidationRulesProperty); }
set { SetValue(ValidationRulesProperty, value); }
}
ValidationRules는 어떤 유형입니까? 컬렉션 유형에 개체를 추가하려고하지만 컬렉션을 인스턴스화하지 않은 것 같습니다. –
게시물을 업데이트했습니다! – azamsharp
항목을 추가하기 전에 컬렉션을 인스턴스화해야합니다. RequiredTextBox 클래스의 생성자에서 다음을 추가합니다. ValidationRules = new Collection(); 이제 xmal을 통해 항목을 추가 할 수 있습니다. –