的我有兩個組合框級聯組合框沒有更新的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 –