我正在創建一個UserControl「UC」。我有我的班級數據「AClass」。我想讓這個類的一個對象在我的UserControl中成爲一個DP。所以我把定義UC:UserControl中的DependencyProperty
public static readonly DependencyProperty AProperty =
DependencyProperty.Register("A", typeof(AClass),
typeof(UC), new FrameworkPropertyMetadata(new AClass()));
public AClass A
{
get { return (AClass)GetValue(AProperty); }
set { SetValue(AProperty, value); }
}
這裏是我如何創建我的XAML控制:
xmlns:l="clr-namespace:MyWorkspace"
// ...
<Grid>
<l:UC Height="100" Width="150" Activity="{Binding a}" />
</Grid>
我定義的 「一」 中的代碼隱藏文件:
public partial class MainWindow : Window
{
public AClass a {get; set;}
public MainWindow()
{
DataContext = this;
a = // create an object
InitializeComponent();
}
}
接下來,在我的UC中,我想引用「A」並使用其屬性之一:
private void DoSomethingInUC()
{
int size = A.AsProperty;
// ...
}
問題是,每次我提到「A」時,它都是未初始化的(即, 「AsProperty」包含默認值)。
這是什麼問題?
在你的XAML中,你不是綁定屬性'A',而是'Activity'。故意的? – Clemens