假设我们有一个依赖属性控制:Loaded事件和数据绑定在WPF
public class MyControl : ContentControl
{
static MyControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyControl), new FrameworkPropertyMetadata(typeof(MyControl)));
}
void DoSomething(object sender, RoutedEventArgs e)
{
//...
}
public MyControl()
{
this.Loaded += DoSomething;
}
public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
"Value", typeof(string), typeof(MyControl),
new FrameworkPropertyMetadata(default(string),
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal, OnValueChanged));
private static void OnValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
//some actions
}
public string Value
{
get { return (string)GetValue(MyControl.ValueProperty); }
set { SetValue(MyControl.ValueProperty, value); }
}}
而且在某处XAML我们绑定ValueProperty一些视图模型的某些属性瓦尔。
我的问题是,在Loaded事件被触发的时刻,MyControl.Value的值是否已经被设置为Val的值呢?那么,我是否能够在DoSomething方法中使用Val,并在MyControl被加载时执行?
非常感谢您提供任何答案。
试试它会不会更容易? ;) –
我试过了,并没有得到什么错误,在某些情况下它有效(值被设置),在其他情况下它没有,我不明白它依赖于什么,或者我错过了某些东西,所以我决定询问是否有任何定义的行为以及它依赖于什么。 –
请不要吝啬,我只是问,我花了整整一天的时间来试图弄清楚这个问题并调试 –