项目结构(伪代码):
Backend:
Controler // controler class
List<Item> ItemsList
Item // Model/Data 'struct' kind of class
decimal Centimeters
decimal Inches
int ItemIndex // index of item in ComboBox selected for work
UI:
MainWindow
// TextBoxes
Centimeters
Inches
ComboBox ItemIndex
功能: 当我在ComboBox中选择ItemIndex时,Item中具有相应索引的属性(Inches,..)应该以某种方式绑定到TextBoxes。 用户可以使用TextBox或Controller更改Items中的数据,Controller根据用户输入的值计算剩余值。
是否有一些简单的方法在WPF中进行绑定?
我刚开始使用WPF,所以如果问题有点模糊或非常基本,我会道歉。 我觉得有一个光滑的解决方案,但我有点卡在这里。
我知道我可以通过PropetyChanged事件的可怕手工制作来解决这个问题。从文本框到窗口到控制器到将分配给属性的项目。同样的回来。 我在应用程序的Winforms版本中实现了这样,但它看起来很混乱。 仍希望有更优雅的解决方案。你能帮忙吗?
答案 0 :(得分:1)
这是TextBoxes
与SelectedItem
的{{1}}绑定的方法。在此,我假设ComboBox
的{{1}}类型为ItemsSource
ComboBox
但在这种情况下,您的List<Item>
课程应该实施 <TextBox x:Name="Inches" Text="{Binding SelectedItem.Inches, ElementName=MyCombo}"/>
<TextBox x:Name="Centis" Text="{Binding SelectedItem.Centimeters, ElementName=MyCombo}"/>
<ComboBox x:Name="MyCombo"/>
并为其属性Cencheters和Inches提升PropertyChanged,如下所示
Item