Tôi có một ứng dụng WPF nơi tôi đang sử dụng thuộc tính phụ thuộc trong codebehind mà tôi muốn thiết lập thông qua khai báo XAML.WPF: Các khai báo thuộc tính XAML không được thiết lập thông qua Setters?
ví dụ:
<l:SelectControl StateType="A" Text="Hello"/>
Vì vậy, trong ví dụ này tôi có một UserControl
gọi SelectControl
, trong đó có một tính chất gọi là StateType
mà thao tác một số tài sản khác trong đó là setter.
Để giúp minh họa sự cố, tôi đã đặt một thuộc tính khác có tên là Text
trong ví dụ, đọc tiếp và tôi sẽ giải thích thêm.
codebehind trích ...
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(String), typeof(SelectControl));
public String Text
{
get { return (String)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
public static readonly DependencyProperty StateTypeProperty = DependencyProperty.Register("StateType", typeof(String), typeof(SelectControl));
public String StateType
{
get { return (String)GetValue(StateTypeProperty) }
set
{
switch (value)
{
case "A":
AnotherPropertyBoolean = true;
break;
case "B":
AnotherPropertyBoolean = false;
break;
default:
// this is only an example...
}
}
}
Bây giờ, nếu tôi đặt một breakpoint trên setter (đối với một trong hai StateType
hoặc Text
), nó quay ra nó không bao giờ thực hiện.
Tuy nhiên giá trị được khai báo cho Text
, tức là "Hello" xuất hiện trong dữ liệu của nó bị ràng buộc TextBox
và tất nhiên tôi ràng buộc điều khiển văn bản khác với giá trị của StateType
.
Có ai biết điều gì đang xảy ra không?
Đẹp nhất :) cảm ơn. – ocodo