您好我发现直接在组合框中使用字典对Windows应用商店应用程序效果不佳。这是产生错误的完整代码。
我的模特
class QuestionModel
{
public QuestionModel(int Key, string Question, Dictionary<string, string> Answers)
{
key = Key;
question = Question;
answers=Answers;
}
public int key { get; set; }
public string question { get; set; }
public Dictionary<string, string> answers { get; set; }
}
填充收集代码
ObservableCollection<QuestionModel> questionCollection = new ObservableCollection<QuestionModel>();
foreach (KeyValuePair<int, Dictionary<string, string>> pair in CommonVariables.answersINR)
{
if (item.Key==pair.Key)
{
questionCollection.Add(new QuestionModel(item.Key, item.Value,pair.Value));
}
}
我的Xaml组合框
<ComboBox Height="40" VerticalAlignment="Stretch" x:Name="QuestioncomboBox" Grid.Column="1" FontSize="25" ItemsSource="{Binding Path=answers}" SelectedValuePath="Key" DisplayMemberPath="Value">
</ComboBox>
所以你可以看到这对。 value在我的集合的答案部分加载数据。但是我今天刚刚通过研究发现Windows Store Apps组合框与字典不兼容。所以堆栈中有人将pair.value修改为这行代码。
pair.Value.Select(f => new { Key = f.Key, Value = f.Value }).ToList();
适用于填充组合框。唯一的问题是如何将其插入到questioncollection而不是pair.value?有人可以通过重写我的代码以适应上面这样的代码行来提供帮助吗?
questionCollection.Add(new QuestionModel(item.Key, item.Value,pair.Value.Select(f => new { Key = f.Key, Value = f.Value }).ToList();));
在那个给我一个错误的那一刻我无法解决?