【发布时间】:2015-06-27 07:22:24
【问题描述】:
我正在开发一个新的 c# MVVM 轻型现代 ui WPF 应用程序,但遇到了一些奇怪的触发行为。因此,为了描述这种情况,以下是:
我有一个带有触发器的 XML 视图。 (以加载方法为例)
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding LoadedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
带有relaycommand的构造函数(来自抽象模型的LoadedCommand)
public MovieListModel()
{
LoadedCommand = new RelayCommand(LoadData);
}
private void LoadData()
{
Debug.WriteLine("MovieListModel - LoadData");
}
问题: 当应用程序启动时,加载的命令被调用 1 次(好)。当我导航到应用程序内的另一个页面时,第一个视图和新视图 LoadedCommand 都会被触发。其他命令也被触发两次。如果我以后想在其中放入一些编程逻辑,我猜这将成为一个问题。
完整的debug.writeline如下:
ModernUserControl - OnNavigatingFrom
MovieListModel - NavigatingFrom
ModernUserControl - OnNavigatingFrom event called
ModernUserControl - OnNavigatedFrom
MovieListModel - NavigatedFrom
ModernUserControl - OnNavigatedFrom event called
ModernUserControl - OnNavigatedTo
MovieListModel - LoadData
SettingsModel - LoadData
信息: 我在这里找到的示例程序中发现了这个问题:https://github.com/saramgsilva/ModernUISamples 和我自己的应用程序。我还在 github 上开了一张票,以确定这是否是问题/错误。 (还没有回复)
【问题讨论】:
-
你说你用Loaded作为例子,你有没有尝试过其他事件?因为我知道加载被触发了两次
标签: c# wpf mvvm relaycommand modern-ui