using System.ComponentModel;
|
using System.Globalization;
|
using System.Runtime.CompilerServices;
|
using System.Windows;
|
using System.Windows.Controls;
|
using System.Windows.Data;
|
|
namespace Util.ManualDebug
|
{
|
public enum CellStatus
|
{
|
Testing = 0,
|
OK = 1,
|
NG = 2,
|
Closed = 99,
|
Open = 100,
|
Waiting = 101
|
}
|
|
public class CellStatusConverter : IValueConverter
|
{
|
public static CellStatusConverter Instance = new CellStatusConverter();
|
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
{
|
if (value is bool b)
|
{
|
return b ? CellStatus.Open : CellStatus.Closed;
|
}
|
return CellStatus.Closed;
|
}
|
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
{
|
return null;
|
}
|
}
|
|
/// <summary>
|
/// ManualCell.xaml 的交互逻辑
|
/// </summary>
|
public partial class StatusCell : UserControl, INotifyPropertyChanged
|
{
|
#region ...
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
protected void Set([CallerMemberName] string name = null)
|
{
|
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
|
}
|
|
protected void Set<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
|
{
|
old = @new;
|
if (propertyName != null)
|
{
|
Set(propertyName);
|
}
|
}
|
#endregion
|
private string title;
|
public string Title
|
{
|
get => title;
|
set
|
{
|
Set(ref title, value);
|
}
|
}
|
|
public static readonly DependencyProperty StatusProperty = DependencyProperty.Register(
|
"Status",
|
typeof(CellStatus),
|
typeof(StatusCell),
|
new PropertyMetadata(CellStatus.Closed));
|
|
public CellStatus Status
|
{
|
get => (CellStatus)GetValue(StatusProperty);
|
set
|
{
|
SetValue(StatusProperty, value);
|
}
|
}
|
|
|
private int index;
|
public int Index
|
{
|
get => index;
|
set
|
{
|
Set(ref index, value);
|
}
|
}
|
|
public StatusCell()
|
{
|
this.DataContext = this;
|
InitializeComponent();
|
}
|
}
|
}
|