【问题标题】:grid for data entry数据输入网格
【发布时间】:2023-03-10 19:01:01
【问题描述】:

作为 WPF 演示的一部分,我需要一个类似于下面模型的控件来让用户:

  1. 输入可变数量的百分比,最高可达 100%
  2. 知道所有条目的总数是多少
  3. 知道余额是多少(100% - TotalEntered)

虽然这显然是一个非常普通的要求,但我不知道如何实现它。这是一次性的要求,所以它不必是可重用的,尽管如果可以的话会很好。允许分离和可测试性的模式(即,MVVM)也很好。

我认为现有的 DataGrid 控件是合适的工具,但也许它是矫枉过正的。有人可以建议一些开始的实现代码或链接吗?

干杯,
浆果

【问题讨论】:

    标签: wpf xaml mvvm datagrid wpf-controls


    【解决方案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 可能会有所帮助。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      相关资源
      最近更新 更多