Unexpected red border (validation error) on DataGrid when selecting blank row

前端 未结 5 897
旧时难觅i
旧时难觅i 2020-12-31 00:44

When I select (by clicking or by keyboard) blank row on my DataGrid (when I want to add new row), unexpected validation error occurs (but with no exception) - the border of

5条回答
  •  北海茫月
    2020-12-31 01:32

    Here's a general-purpose converter you can use for any DataGrid, binding any kind of item:

        public class DataGridItemConverter : MarkupExtension, IValueConverter
        {
        static DataGridItemConverter converter;
    
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
            return value;
            }
    
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
            return (value != null && value.GetType() == targetType) ? value : null;
            }
    
        public override object ProvideValue(IServiceProvider serviceProvider)
            {
            if (converter == null)
                converter = new DataGridItemConverter();
            return converter;
            }
        }
    

    Since it implements MarkupExtension you don't even need to define a static resource, you can just reference it like this:

    SelectedItem="{Binding SelectedThing,Converter={conv:DataGridItemConverter}}"
    

提交回复
热议问题