我有一个组合框,我将XAML中的组合框与viewmodel字典值绑定。
第一次加载页面时,我试图从服务器下载字典值并将其设置为字典视图模型变量。
但是组合框看起来很空洞我不明白为什么会发生这种情况,因为View Model变量已经更新,而且它应该会触发组合框的重新加载而不会发生..
供参考: 如果我对字典进行硬编码而不是从服务器下载,我就不会看到这个问题 当我第二次加载页面时,我没有看到这个问题
更新
XAML
<ComboBox x:Name=“testBox” Margin=“0,0,0,0” PlaceholderText="{StaticResource testText}” ItemsSource="{Binding TestDictionary.Values}” SelectedValue="{Binding DictionaryValue, Mode=TwoWay}" IsEnabled="{Binding IsItLoading, Converter={StaticResource InverseBooleanConverter}}"/>
查看模型
private Dictionary<string, string> testDictionary;
public Dictionary<string, string> TestDictionary
{
get
{
if (this.testDictionary == null)
{
this.testDictionary = new Dictionary<string, string>();
}
return this.testDictionary;
}
set
{
this.Set(() => this.TestDictionary, ref this.testDictionary, value);
}
}
答案 0 :(得分:1)
Dictionary
在添加,删除项目或刷新整个列表时不会提供通知。
当我们向Dictionary
添加新数据时,我们应该能够将null
设置为ItemsSource
的{{1}}。然后将ComboBox
设置为TestDictionary.Values
的{{1}}。
您还可以实施自己的ItemsSource
。 ComboBox
更改后,ObservableDictionary
将会更改。
要实施Dictionary
,您可以参考following question。