達成したいこと:エレメントがロードされたときにコマンドをトリガーし、このエレメントにRefferenceを取得したいので、 MainViewModel.cs
。コマンドをバインドするためのイベントをバインドしてUIエレメントに反映させる
私は、このXAMLコードを書いた:
<visualizer:PreviewTile DisplayName="Share Tile" TileSize="Wide" Background="Red" IsAnimationEnabled="True" x:Name="P">
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Loaded">
<core:InvokeCommandAction Command="{Binding LoadedVisualizer}"></core:InvokeCommandAction>
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</visualizer:PreviewTile>
をし、コードのこの作品追加しました:
private RelayCommand _loadedVisualizerCommand;
public RelayCommand LoadedVisualizer
{
get
{
return _loadedVisualizerCommand
?? (_loadedVisualizerCommand = new RelayCommand(
async() =>
{
await new MessageDialog("Loaded", "Some Content").ShowAsync();
}));
}
}
をしかしときメソッドが呼び出されません、私が試した何
ロードされたイベントが発生しています。
は、だから私は、コントロールにRefferenceを取得するには、これを試してみましたが、それはNullRefference
例外投げされています。そこにもかかわらず
public MainPage()
{
InitializeComponent();
Loaded += (s, e) =>
{
Vm.PreviewTile = P;
};
}
:MainViewModel
で
:
MainPage.xaml.cs
で
public PreviewTile PreviewTile { get; set; }
をmvvmのライトでイベントを使用することについてのいくつかの記事や質問があります(未回答のものがいくつかあります)。
答えとサンプルプロジェクト - ありがとう、誰かがこれを落とした理由を教えてくれてありがとう –
すごくうれしくて助かりました:-) –