【发布时间】:2018-06-24 12:59:16
【问题描述】:
我有一个 DataGrid,其中有一列有一个 ComboBox:
DataGridTemplateColumn colDataType = new DataGridTemplateColumn();
colDataType.Header = "Type";
var cboFactoryDT = new FrameworkElementFactory(typeof(ComboBox));
cboFactoryDT.SetValue(ComboBox.ItemsSourceProperty, Enum.GetValues(typeof(BuilderDataTypes)).Cast<BuilderDataTypes>());
b = new Binding("Value[1]");
b.Converter = new ObjectToDataTypeConverter();
b.UpdateSourceTrigger = UpdateSourceTrigger.LostFocus;
b.Mode = BindingMode.TwoWay;
cboFactoryDT.SetBinding(ComboBox.SelectedIndexProperty, b);
cboFactoryDT.SetValue(ComboBox.IsSynchronizedWithCurrentItemProperty, true);
DataTemplate dtDT = new DataTemplate { VisualTree = cboFactoryDT };
colDataType.CellTemplate = dtDT;
我的转换器类是:
public class ObjectToDataTypeConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
try
{
return int.Parse(value.ToString());
}
catch { return 0; }
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
try
{
return value;
}
catch { return 0; }
}
}
现在,问题是当我更改其中一行中的选择时,所有行中的所有组合框也都更改为相同的选择。
可能是什么问题?
【问题讨论】:
标签: c# wpf data-binding combobox datagrid