質問

私は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回のヒットを取得していることであるという理由を見つけます。

おかげ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top