Я пытаюсь отразить несколько прямоугольников из окна MainWindow. То, что я хочу сделать, вместо того, чтобы использовать кнопку, пытается получить событие для запуска перелистывания. Я попытался связать событие в пользовательском классе с ICommand, который является хорошо известным ScrollBehavior. Проблема в том, что при загрузке программы возникает это исключение:
XamlParseException для Interactivity.TriggersCollection
Изображение примерно такое:
Из того, что у меня есть, событие
public class FlipClass
{
int i = 0;
public void FlipEvent(object sender, EventArgs e)
{
i++;
Console.WriteLine(i);
myTestingString = johnny;
}
}
Этот самый класс связан с моим MainWindow благодаря DataContext следующим образом:
public MainWindow()
{
InitializeComponent();
FlipClass() _flipClass = new FlipClass();
this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
DataContext = _flipClass; //The Context is here
Stopwatch moi = new Stopwatch();
moi.Start(): //Monitoring the Window
moi.Stop();
Console.WriteLine(moi.ElapsedMilliseconds);
Closing += OnClosing;
}
Наконец, в моем коде XAML у меня есть это
<ec:PathListBox x:Name="pathListBox" Margin="312,566.254,299.5,407" WrapItems="True" ItemContainerStyle="{DynamicResource PathListBoxItemStyle1}">
<i:Interaction.Behaviors>
<local:PathListBoxScrollBehavior>
<i:Interaction.Triggers>
<local:DataEventTrigger EventName="FlipEvent"> <------- This is Where I get the Exception
<i:InvokeCommandAction CommandName="DecrementCommand"/>
</local:DataEventTrigger>
</i:Interaction.Triggers>
<local:PathListBoxScrollBehavior.Ease>
<QuarticEase EasingMode="EaseOut"/>
</local:PathListBoxScrollBehavior.Ease>
</local:PathListBoxScrollBehavior>
</i:Interaction.Behaviors>
<ec:PathListBox.LayoutPaths>
<ec:LayoutPath SourceElement="{Binding ElementName=path}" Distribution="Even" Capacity="3"/>
</ec:PathListBox.LayoutPaths>
<Rectangle HorizontalAlignment="Left" Height="139.96" Stroke="#FF6DBDD1" StrokeThickness="1" VerticalAlignment="Top" Width="202" Fill="#FFA7CEF5"/>
<Rectangle HorizontalAlignment="Left" Height="139.96" Stroke="#FF6DBDD1" StrokeThickness="1" VerticalAlignment="Top" Width="202" Fill="#FFA7CEF5"/>
<Rectangle HorizontalAlignment="Left" Height="139.96" Stroke="#FF6DBDD1" StrokeThickness="1" VerticalAlignment="Top" Width="202" Fill="#FFA7CEF5"/>
<Rectangle HorizontalAlignment="Left" Height="139.96" Stroke="#FF6DBDD1" StrokeThickness="1" VerticalAlignment="Top" Width="202" Fill="#FFA7CEF5"/>
<Rectangle HorizontalAlignment="Left" Height="139.96" Stroke="#FF6DBDD1" StrokeThickness="1" VerticalAlignment="Top" Width="202" Fill="#FFA7CEF5"/>
<Rectangle HorizontalAlignment="Left" Height="139.96" Stroke="#FF6DBDD1" StrokeThickness="1" VerticalAlignment="Top" Width="202" Fill="#FFA7CEF5"/>
</ec:PathListBox>
Я намеренно сократил остальную часть кода XAML, поскольку она не имеет значения.
Точность: когда я помещаю код, который запускает команду с помощью кнопки, он работает отлично. DataEventTrigger
заменяется на:
<i:EventTrigger SourceName="button" EventName="Click">
<i:InvokeCommandAction CommandName="DecrementCommand"/>
</i:EventTrigger>
Я предполагаю, что мое событие плохо связано. У вас есть какие-либо предложения? Спасибо за помощь, надеюсь мой вопрос понятен.