Hi everyone,

I'm encountering an issue with my WinUI 3 application, specifically when populating a ListView. I'm binding a collection of objects to the ItemsSource, but occasionally, some of these objects can have null properties. When the ListView tries to display these null properties (e.g., in a TextBlock's Text property), it throws a System.NullReferenceException.

I've tried a few things:

  • Checking for nulls in my ViewModel before adding to the collection.
  • Using a converter to return an empty string for null values.

The converter approach works for simple TextBlocks, but I also have more complex scenarios with custom data templates that involve multiple controls. It feels like there should be a more robust, declarative way to handle this directly within the XAML.

Has anyone faced a similar problem? What are the recommended best practices for preventing NullReferenceExceptions in WinUI ListView items, especially within custom data templates?

Here's a simplified example of my DataTemplate:

<DataTemplate x:Key="MyItemTemplate">
    <StackPanel Orientation="Vertical" Spacing="8">
        <TextBlock Text="{Binding PropertyA}" FontWeight="Bold"/>
        <TextBlock Text="{Binding PropertyB}"/>
        <!-- This TextBlock is problematic if PropertyC is null -->
        <TextBlock Text="{Binding PropertyC}" Foreground="Gray"/>
    </StackPanel>
</DataTemplate>

Any advice or code examples would be greatly appreciated!