控制行为 - 删除控件并再次添加时,再次附加行为

时间:2014-04-01 15:12:05

标签: c# wpf mvvm behavior

使用WPF,MVVM(Caliburn库,ViewModel优先) 我有一个可以显示两件事的视图,ChartA和ChartB。

将视图切换到另一个时,我不会再次创建视图,而是将其保存到本地成员。

当我从ChartA视图转到ChartB时,再次转到ChartA,再次调用OnAttached行为。比,行为中的事件发生两次!

为什么行为'再创造',我该怎样才能阻止它。  我不想处置视图以允许两者之间的快速导航。

代码:

在我的主窗口视图中,我定义了内容控件(MainWindowView.xaml):

 <ContentControl x:Name="MainFrame" Grid.Row="2" Grid.Column="1" Grid.RowSpan="1" Margin="10,0,0,0"/>

在视图模型(MainWindowViewModel.cs)中:

public MainWindowViewModel() {

    ...

    // Views
    m_ChartA = new ChartAViewModel(...);
    m_ChartB = new ChartBViewModel(...);

    MainFrame = m_ChartA;

   ...
}

我的导航:

public void GoToChartBView() {

    ...

    MainFrame = m_ChartB;
}

public void GoToChartAView() {

    ...

    MainFrame = m_ChartA;
}

ChartAViewModel和ChartBViewModel具有在每个导航中重新附加行为的视图。

这是一个非常简化的代码,但这就是想法。

0 个答案:

没有答案