Mam UserControl z następującym wyzwalacza zdarzeń:EventTrigger nie strzelać do załadowanych razie UserControl
<UserControl x:Class="TestApp.Views.MyUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding OnLoadedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
Jest on ustawiony przez konstruktora UserControl (proszę ignorować ServiceLocator ..this jest po prostu szybki prototyp):
public MyUserControl()
{
InitializeComponent();
DataContext = ServiceLocator.Current.GetInstance<DirectorySearchViewModel>();
}
moim zdaniem model mam następujący:
public ICommand OnLoadedCommand { get; private set; }
public MyUserControl()
{
OnLoadedCommand = new DelegateCommand(OnLoaded);
}
public void OnLoaded()
{
}
OnLoaded nigdy nie zostaje wywołany. Jeśli zmienię nazwę EventName, aby powiedzieć ..MouseDown, to działa, ale to po prostu nie zadziała dla Loaded
Jestem pewien, że to głupi błąd (przysięgam, że robiłem to już milion razy w przeszłości), ale mogę Wygląda na to, że teraz to jest
WAG tutaj, ale spróbuj ustawić swój DC przed wywołaniem InitializeComponent w konstruktorze. – Will
BINGO. ARGH! Ile razy robię ten sam głupi błąd! Proszę odpowiedzieć jako odpowiedź, więc mogę Ci podziękować :) – blue18hutthutt