using System; using System.Globalization; using System.Windows; using System.Windows.Data; using System.Windows.Markup; namespace AIStudio.Wpf.DiagramDesigner.Additionals.Converters { //选中项索引转换成可见项 public class IntVisibilityConverter : MarkupExtension, IValueConverter { /// /// Returns the value for the target property of this markup extension. /// /// Object that can provide services for the markup extension. /// Reference to the instance of this Int32IndexToNumberConverter. public override object ProvideValue(System.IServiceProvider serviceProvider) { return this; } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is int && parameter is string) //与参数相同则显示 { if (parameter.ToString().Contains("^")) { var paras = parameter.ToString().Split('^'); foreach(var para in paras) { if (value.ToString() == para) { return Visibility.Visible; } } return Visibility.Collapsed; } else { if (value.ToString() == (string)parameter) { return Visibility.Visible; } } } else if (value is int) //无参数,则大于0显示 { if ((int)value > 0) { return Visibility.Visible; } } return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }