的我有两个组合框级联组合框没有更新的ItemSource依赖组合框
<ComboBox x:Name="cmbInstanceList" Margin="15,0,5,0" Grid.Row="1" Grid.Column="1" ItemsSource="{Binding InstanceList}" SelectionChanged="cmbInstanceList_SelectionChanged"
Height="25"
Style="{StaticResource InputControlErrorsCombo}" Validation.ErrorTemplate="{StaticResource validationTemplate}" />
<ComboBox x:Name="cmbDatabaseList" Margin="15,0,5,0" Grid.Row="2" Grid.Column="1" ItemsSource="{Binding DatabaseList}"
Height="25" Style="{StaticResource InputControlErrorsCombo}" Validation.ErrorTemplate="{StaticResource validationTemplate}" />
在此基础上cmbInstanceList,我填cmbDatabaseList通过的ItemSource属性。 InstanceList和DatabaseList是List类型的模型属性。
在代码后端,我使用了selectedchanged事件来填充第二个组合框。
private void cmbInstanceList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (cmbInstanceList.SelectedValue != null)
{
this.data.InstanceName = cmbInstanceList.SelectedValue.ToString();
this.data.DatabaseList.Clear(); // this is not working
FillData(this.data.InstanceName);
}
}
其中this.data表示包含所有属性的模型类。
FillData方法包含对服务的调用,如果数据不可用,返回数据值将只是一个空列表。
response = service.RequestDatabasesByInstance(request);
if (response != null)
{
if (response.DatabaseList != null && response.DatabaseList.Any())
this.data.DatabaseList = response.DatabaseList.ToList<string>();
else
{
this.data.DatabaseList.Clear();
throw new Exception("No data available");
}
}
问题:当我选择从cmbInstance的价值和服务返回与价值观,所有的好,做工精细列表的响应。 当我选择值时,服务无法检索数据并返回空列表时出现问题。即使我设置了模型属性来清除项目,在UI上,我仍然可以看到组合框包含值和项目没有被清除。
是'DatabaseList''ObservableCollection'? –
@LeiYang其列表。它将与ObservableCollection一起工作吗? –
在wpf中你最好使用UI绑定ObservableCollection –