Ich verwende ein TimePicker
Steuerelement auf einer XAML-Seite und versuchen, auf Änderungen in der entsprechenden ViewModel
reagieren. Ich habe den Namespace Xaml.Interactivity
und Xaml.Interactivity.Core
zu meiner Seite hinzugefügt, um die Behaviors SDK
zu verwenden, um den Befehl auszulösen, sobald das Ereignis TimeChanged
aufgerufen wird.Bindung von MVVM-Befehl an TimePicker-Steuerelement in UWP
<!-- XAML Namespaces -->
xmlns:interact="using:Microsoft.Xaml.Interactivity"
xmlns:interactcore="using:Microsoft.Xaml.Interactions.Core"
<TimePicker x:Name="TestTimePicker" ClockIdentifier="24HourClock" Time="0">
<interact:Interaction.Behaviors>
<interactcore:EventTriggerBehavior EventName="TimeChanged">
<interactcore:InvokeCommandAction Command="{Binding DataContext.TimeChangedCommand}" CommandParameter="{Binding ElementName=TestTimePicker, Path=Time}" />
</interactcore:EventTriggerBehavior>
</interact:Interaction.Behaviors>
</TimePicker>
Für den Code in meinem ViewModel
verwende ich ViewModelBase
und DelegateCommand
von Template10
.
public DelegateCommand<TimeSpan> StartTimeChangedCommand { get; set; }
public TestViewModel()
{
...
TimeChangedCommand = new DelegateCommand<TimeSpan>(TimeChangedAction);
...
}
private void TimeChangedAction(TimeSpan obj)
{
//do something with obj
}
Sobald die Seite ein InvalidOperationException
mit der folgenden Meldung geworfen wird initialisiert.
Adding or removing event handlers dynamically is not supported on WinRT events.
können Sie sagen, was ist das Problem jetzt zu implementieren? – Archana
Entschuldigung! Frage aktualisiert – nor0x
Nein, nicht mit Prisma – nor0x