1

我的代码如下所示:

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属性为空。这是有问题的,因为这会导致 telemetry.View 返回 null,这反过来意味着我的 ItemsSource 被设置为 null。在绑定操作向 CollectionViewSource.Source 返回 null 的情况下,是否有某种方法可以使 CollectionViewSource.View 返回一个空视图?(而且我假设一旦 CollectionViewSource.View 返回非 null 它总是返回相同的实例?)

4

1 回答 1

1

我认为通常你会使用ItemsSource="{Binding Source={StaticResource myCollectionViewSource}}"而不是将视图直接分配给 ItemsSource。这会处理CollectionViewSource.View从 null 到某事的变化......您是否有理由不在 XAML 中设置这一切?

于 2012-10-03T07:57:32.783 回答