У меня есть сетка данных, к которой я программно добавляю столбец флажка. К этому столбцу у меня есть перечисление, которое нужно привязать, но поскольку столбец флажка будет принимать только логическое значение, я использую конвертер. Мне также нужно обновить свой источник, когда мой целевой флажок изменится. Хотя мой код обновляет мой источник, когда я устанавливаю флажок, но как только я теряю фокус, флажок (галочка) исчезает. Как я могу сделать проверку флажка постоянной?
Я пробовал другие значения UpdateSourceTrigger
, но они не работают.
Ниже приведен код столбца флажка.
Binding binding = new Binding("GridCRUDStatus") { Converter = new CheckBoxColConverter(), Mode = BindingMode.TwoWay, UpdateSourceTrigger = UpdateSourceTrigger.Explicit };
DataGridCheckBoxColumn chkCol = new DataGridCheckBoxColumn() { Header = "Select", Binding = binding };
Преобразователь класса
internal class CheckBoxColConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
GridCRUDStatus status;
if (Enum.TryParse<GridCRUDStatus>(value.ToString(), out status))
{
if (status == GridCRUDStatus.Selected)
return true;
}
return false;
//throw new NotImplementedException();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool chkValue;
if (Boolean.TryParse(value.ToString(), out chkValue))
{
if (chkValue)
return GridCRUDStatus.Delete;
}
return GridCRUDStatus.Read;
//return null;
}
#endregion
}
Я пробовал искать в сети, но не смог найти решение. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация с моей стороны.
Пожалуйста помоги! Заранее спасибо.
С уважением,
Самар