我可以将InitializeComponent()移动到Loaded()

时间:2015-10-16 19:15:14

标签: c# .net windows-runtime uwp

在应用程序构造函数中未调用依赖项属性setter,并且只有在加载用户控件后才能使用值。那么,将IDS Dates 123 03012014 456 08012014 方法移到InitializeComponent()方法是否安全?

2 个答案:

答案 0 :(得分:0)

InitializeComponent()保持在原位。而是使用Loaded事件。即。

  [Dependency]
  public Foo Foo { get; set; }

  public MainWindow()
        {
            InitializeComponent();

            Loaded += MainWindow_Loaded;
        }

  private void MainWindow_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            // Propery injection should have taken place now, so do what you need to do with them
        }

答案 1 :(得分:0)

我不知道这是否有助于你的问题,但我只是让VisualStateManger转到它在加载事件中的当前状态:

    private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
    {
        VisualStateManager.GoToState(this, YourStateGroup.CurrentState.Name, false);
    }