作为WPF演示文稿的一部分,我需要像下面的模拟一样的控件来让用户:
虽然这显然是一个非常行人的要求,但我对如何实施它感到茫然。这是一次性要求,所以它不需要是可重复使用的,尽管如果它可能会很好。允许分离和可测试性(即MVVM)的模式也很棒。
我认为现有的DataGrid控件是正确的工具,但也许它太过分了。有人可以建议一些启动实现代码或链接到同一个吗?
干杯,
Berryl
答案 0 :(得分:1)
VM =“ViewModel”实施INotifyPropertyChanged
。
创建Shares
VM和Share
VM(为简洁起见,删除了实施)。
SharesViewModel
{
double TotalPercent
double RemainingPercent
ObservableCollection<ShareViewModel> Shares
// foreach Share in Shares
// handle PropertyChanged on ActualPercent to update TotalPercent
}
ShareViewModel
{
int Line
string Percent // on set, parse/validate and set ActualPercent
double ActualPercent
}
使用此article查看如何按顺序保留Line
序列。
将DataGrid ItemsSource
绑定到SharesViewModel Shares
属性。
(确保验证输入百分比。IDataErrorInfo
可能会有所帮助。)