MVVMライト - ViewModelLocatorを使用して - プロパティが複数回ヒット
-
26-09-2019 - |
質問
私はMVVMライトViewModelLocatorを利用しています。私はApp.Xaml内のリソースにフックアップされてGlobalViewModelLocatorというクラスを持っています。このクラスは、MainViewModelのインスタンスを返すメインという静的プロパティがあります。
次にMainView.Xamlに、私はこのMainViewModelのパスにバインドするために、ユーザーコントロールのDataContextのセット。これは、罰金に動作します - 私はMainViewModelコンストラクタにブレークポイントを入れて、それが一回ヒットされています。しかし、MainViewModel内のコントロールのイベントトリガーの結果として設定されているのViewModel内のすべてのプロパティは、ヒットを3回されています。これが起こってすることができ、なぜ誰でも知っていますか?
ここMainView.Xamlのコードのサンプルである:
<UserControl.DataContext>
<Binding Path="Main" Source="{StaticResource Locator}"/>
</UserControl.DataContext>
<Grid x:Name="LayoutRoot" Background="#FF292929">
...
<MediaElement Stretch="Fill" AutoPlay="False" Name="mediaElement">
<MediaElement.Style>
<Style TargetType="MediaElement">
<Setter Property="OpacityMask" Value="Black"/>
</Style>
</MediaElement.Style>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding MediaOpenedCommand}" CommandParameter="{Binding ElementName=mediaElement, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</MediaElement>
...
この場合、MediaOpenedCommandは、3回をヒットされています。任意のアイデアなぜですか?
解決
私はその特定のビューは異なるXAMLページ内から三回参照されているので、それは3回のヒットを取得していることであるという理由を見つけます。
おかげ
所属していません StackOverflow