CollectionViewSource.View在第一个有效源之前为空;而需要使用空视图

时间:2012-10-02 21:13:52

标签: c# wpf binding

我的代码如下所示:

var telemetry = new CollectionViewSource();
telemetry.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
SetTelemetryFilters(telemetry);

var binding = new Binding("Asset.TelemetryDefinitions.Values");
binding.Source = this;
var expression = BindingOperations.SetBinding(telemetry, CollectionViewSource.SourceProperty, binding);

在此代码之后不久,我正在设置ComboBox.ItemsSource = telemetry.View。我需要查看(在多个地方)因为它实现了IEnumerable而CollectionViewSource没有。当软件首次运行时,Asset属性为null。这是有问题的,因为这导致telemetry.View返回null,这反过来意味着我的ItemsSource被设置为null。在绑定操作向CollectionViewSource.Source返回null的情况下,是否有一些方法可以使CollectionViewSource.View返回一个空视图? (我假设一旦CollectionViewSource.View返回非null,它总是返回相同的实例?)

1 个答案:

答案 0 :(得分:1)

我认为通常你会使用ItemsSource="{Binding Source={StaticResource myCollectionViewSource}}"而不是直接将View分配给ItemsSource。这会照顾CollectionViewSource.View从null更改为某些内容......您是否有理由不在XAML中设置此内容?