在文本/组合框属性修改时启用按钮

时间:2016-09-09 13:17:44

标签: c# wpf mvvm prism

我有2个不同的观看次数,MainViewSectionView,其中SectionViewprism中的区域(使用MainView库)。在MainView中,我有DataGridObject个,每个包含5个属性。可以一次选择其中一个Object,这将打开SelectionView包含4个TextBox es和1个ComboBox,显示Object的值的属性。我通过绑定每个TextBox'来做到这一点。 Text="{Binding this.MainView.SelectedObject.[PropertyGoesHere]}" 现在,当其中一个属性被修改时,我想要启用两个按钮,一个用于保存更改(我不想立即保存,因此TwoWay不是一个选项),还有一个要还原更改(换句话说,将框的值重置为用户在MainView中选择对象时的值。

我认为这个过程应该是

第1步

用户选择Object并设置MainView.SelectedObjectSectionView需要听到'这个,并将属性值保存在自己的SelectedObject中。 SectionView中的框将通过绑定到MainView.SelectedObject属性显示这些属性的值,或者从SectionView.SelectedObject获取默认值(我认为后者会更好?)。

第2步

默认情况下,按钮已启用。修改其中一个属性后,两个按钮都应启用,并且两个视图.SelectedObject的属性都不应更改。用户现在可以选择按保存或还原。保存后,方框“属性应发送到MainView.SelectedObject(从而有效地更改Object属性),按钮应再次禁用。在还原时,盒子是'属性应重置为SectionView.SelectedObject的属性,并且按钮应该禁用(从而让用户可以选择重新开始)。

我不希望任何内容与Mode="TwoWay"一起使用的原因是因为用户可能只是从Object中选择另一个DataGrid,这应该与预告Revert相同,只需将新的属性值放入框中即可。

到目前为止我做了什么;

我有所有需要与彼此设置进行通信的独立对象。视图DataGridTextBox / ComboBox,这两个字段都包含Object。我可以将SectionView中的框绑定到MainView.SelectedObject的属性,但我认为这不是最好的方式。

我需要帮助;

我需要帮助的主要部分是设置听力'每当设置SectionView.SelectedObject设置它自己的MainView.SelectedObject,并在修改框中的属性时启用按钮。

编辑:试图更清楚地隔离我所遇到的问题; 我需要在ViewModel 1中有一个Object将它的属性发送给ViewModel 2。 当一些文本框的文本值与其(动态)'默认值'不同时,我需要启用和禁用2个按钮。值。

0 个答案:

没有答案