Wpf 用于数据输入的网格

Wpf 用于数据输入的网格,wpf,xaml,mvvm,datagrid,wpf-controls,Wpf,Xaml,Mvvm,Datagrid,Wpf Controls,作为WPF演示的一部分,我需要一个类似下面的模型的控件,以便用户: 输入不超过100%的可变百分比数 知道所有条目的总数是多少 知道余额是多少(100%-全部输入) 虽然这显然是一个相当普通的要求,但我不知道如何实现它。这是一个一次性的需求,所以它不需要是一个可重用的,尽管如果可以的话,它会很好。一个允许分离和可测试性的模式(即MVVM)也很好 我认为现有的DataGrid控件是合适的工具,但可能有些过火。有人能推荐一些起始实现代码或链接到相同的代码吗 干杯, 贝里尔 VM=“ViewModel

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

  • 输入不超过100%的可变百分比数
  • 知道所有条目的总数是多少
  • 知道余额是多少(100%-全部输入)
  • 虽然这显然是一个相当普通的要求,但我不知道如何实现它。这是一个一次性的需求,所以它不需要是一个可重用的,尽管如果可以的话,它会很好。一个允许分离和可测试性的模式(即MVVM)也很好

    我认为现有的DataGrid控件是合适的工具,但可能有些过火。有人能推荐一些起始实现代码或链接到相同的代码吗

    干杯,
    贝里尔

    VM=“ViewModel”实现
    INotifyPropertyChanged

    创建一个
    共享
    虚拟机和一个
    共享
    虚拟机(为简洁起见删除了实现)

    SharesViewModel
    {
    双倍总百分比
    双倍剩余百分比
    可观测集合股份
    //每股
    //在ActualPercent上更改句柄属性以更新TotalPercent
    }
    共享视图模型
    {
    内线
    设置字符串百分比//时,分析/验证并设置实际百分比
    双实际百分比
    }
    
    使用此项查看如何保持
    顺序

    DataGrid itemsource
    绑定到
    SharesViewModel Shares
    属性

    (确保验证百分比输入。
    IDataErrorInfo
    可能会有所帮助。)

    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
    }