我正在使用C#/ WPF / MVVM开发一个小实用程序,它允许设置我们用于测试的控制器的输入状态。我正在开发的应用程序与硬件/我们与硬件的Web服务通信之间的通信只是一种方式,这意味着应用程序只能设置输入的状态,但不能获得状态。
另一点需要提及的是,在我们的解决方案的其他部分中已经为此定义了一些类型,这些类型都在F#中。要做我的应用程序,我目前正在使用C#。所以我做了一个Unit
类来包装F#中定义的LocalControllerTypes.LocalController
类型,包含很多所需的信息。
为了做到这一点,我有一个enum
枚举InputState
可能(目前有Active
或Normal
,但该列表可能会随着时间而增长) 。此外,每个单元类型上存在的输入数量是不同的(有些有2个,有些有4个,有些有更多),所以我在所选单元的ItemControl
数组上有一个Inputs
绑定,遗憾的是,只包含我必须显示的输入名称。该单元还有2个与其输入相关的其他属性InputWriters
,这是一个类型的数组,用于将命令发送到与该硬件通信的硬件/ Web服务,InputStates
,它是每个输入的InputState
数组,最后在应用程序中设置(因为我们无法从硬件中获取状态)。
现在我想将单选按钮的IsChecked
属性(我将其定义为ItemTemplate
的{{1}})绑定到当前的ItemsControl
InputState
(在我的ViewModel中)。 我遇到的问题,就是我会以某种方式需要知道单选按钮是SelectedUnit
的{{1}}数组的索引,以便获取项目在SelectedUnit
的{{1}}属性的相同索引处。
有没有办法实现这个目标?
MainWindow.xaml:
Inputs
Unit.cs:
SelectedUnit
MainViewModel.cs:
InputStates