CellVm.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.ComponentModel;
  2. namespace LocalizationTool.Models
  3. {
  4. /// <summary>表格单元格:某语言下某条中文源文的译文。</summary>
  5. public class CellVm : INotifyPropertyChanged
  6. {
  7. public string LangCode { get; set; }
  8. private string _value;
  9. public string Value
  10. {
  11. get => _value;
  12. set
  13. {
  14. if (_value == value) return;
  15. _value = value;
  16. OnPropertyChanged(nameof(Value));
  17. OnPropertyChanged(nameof(IsMissing));
  18. }
  19. }
  20. public bool IsMissing => string.IsNullOrWhiteSpace(Value);
  21. private bool _hasIssue;
  22. public bool HasIssue
  23. {
  24. get => _hasIssue;
  25. set
  26. {
  27. if (_hasIssue == value) return;
  28. _hasIssue = value;
  29. OnPropertyChanged(nameof(HasIssue));
  30. }
  31. }
  32. private string _issueMessage = "";
  33. public string IssueMessage
  34. {
  35. get => _issueMessage;
  36. set
  37. {
  38. if (_issueMessage == value) return;
  39. _issueMessage = value;
  40. OnPropertyChanged(nameof(IssueMessage));
  41. }
  42. }
  43. public event PropertyChangedEventHandler PropertyChanged;
  44. private void OnPropertyChanged(string n) =>
  45. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(n));
  46. }
  47. }