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;
}
}
///
/// ManualCell.xaml 的交互逻辑
///
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(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();
}
}
}