近日中にかなり大きなプロジェクトを開始する予定で、プロジェクトを作成する最善の方法は何かを考えました。そして今、コントロールについて重要な質問があります。それを実装する最善の方法が本当にわからないのです。
私はLEDライトのマトリックスを持っています。(32x16 LED)。これらはグリッドに表示する必要があり、ここで注意が必要です。私は彼らとかなり多くのことをすることができなければなりません. 例として、データバインドされたLEDにアクセスして、すべてを右または左に2回シフトしたり、反転させたりするなどの操作を非常に簡単に実行できるようにする必要があります。
次のようにアイテムコントロールに表示することを考えました:
<ItemsControl ItemsSource="{Binding Path=Leds}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="16" Columns="32"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type local:Led}">
<Ellipse Name="ellipse" Fill="Green"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=State}" Value="Off">
<Setter TargetName="ellipse" Property="Fill" Value="Red"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
しかし、LEDのマウスクリックをどのように処理して、LEDをオンまたはオフにする必要がありますか。(私はMVVMを使用しています)そして、LED内のグリッド全体をどのように抽象化しますか?
解決策はたくさんありますが、どれを選択すればよいかわかりません。
シンプルでクリーンなソリューションを作成する方法について、興味深いアイデアがあれば教えてください。