【发布时间】:2015-11-16 21:33:20
【问题描述】:
我有一个字典,它的值用作 DataGrid 中组合框列的源。任务如下:当用户从组合框中选择适当的项目时,应将键而不是值写入列表。 我的代码:
Dictionary<double, string> scores = new Dictionary<double, string>();
scores.Add(1, "the same");
scores.Add(3, "moderate superiority");
scores.Add(5, "strong superiority");
scores.Add(7, "very strong superiority");
scores.Add(9, "extremely superiority");
//define number of alternatives
int num = Alternatives.Children.Count - 1;
//initialize matrix for assessment scores
for (int i = 0; i < num; i++)
{
gridAssessment.Add(new double[num]);
}
//set initial values
for (int i = 0; i < num; i++)
{
gridAssessment[i][i] = scores.ElementAt(0).Key;
}
//define source for assessment grid
grAssessment.ItemsSource = gridAssessment;
grAssessment.AutoGenerateColumns = false;
//add columns to the grid
for (int i = 0; i < num; i++)
{
DataGridComboBoxColumn col = new DataGridComboBoxColumn();
grAssessment.Columns.Add(col);
col.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
//define source for comboboxes
col.ItemsSource = scores;
col.DisplayMemberPath = "Value";
col.SelectedValuePath = "Key";
string a = "[" + i.ToString() + "]";
Binding t = new Binding(a);
t.Mode = BindingMode.TwoWay;
t.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
col.SelectedValueBinding = t;
}
您能帮我装订吗?因为所选值的键未存储在列表中:(
【问题讨论】:
-
你有什么理由在代码而不是 xaml 中这样做?
-
@SamTheDev 因为列是动态添加的。这就是为什么我不在 XAML 中编写代码
标签: c# wpf data-binding datagrid