C# 如果绑定为null,则在XAML中设置默认值

C# 如果绑定为null,则在XAML中设置默认值,c#,wpf,xaml,data-binding,datatemplate,C#,Wpf,Xaml,Data Binding,Datatemplate,编辑 这不是字符串空值的回退的重复。我要求一个复杂类型的后备方案 原始问题 这是我昨天问的一个问题的后续问题: 我接受的答案的核心部分是: <Window.Resources> <DataTemplate DataType="{x:Type local:SettingsPathSelectorViewModel}"> <StackPanel Orientation="Horizontal"> <TextBo

编辑

这不是字符串空值的回退的重复。我要求一个复杂类型的后备方案

原始问题

这是我昨天问的一个问题的后续问题:

我接受的答案的核心部分是:

<Window.Resources>
    <DataTemplate DataType="{x:Type local:SettingsPathSelectorViewModel}">
        <StackPanel Orientation="Horizontal">
            <TextBox Text="{Binding SettingsPath}" />
            <Button 
                Content="..." 
                Command="{Binding OpenFile}" 
                HorizontalAlignment="Left" 
                MinWidth="40" 
                Margin="4,0,0,0" 
                />
        </StackPanel>
    </DataTemplate>
</Window.Resources>
<Grid>
    <StackPanel Orientation="Vertical">
        <Label>First Path</Label>
        <ContentControl Content="{Binding FirstPath}" />
    </StackPanel>
</Grid>
我已在我的窗口中添加了转换器a资源的实例:

<view:PathSelectorConverter x:Key="pathSelectorConverter"/>
并将其添加到属性的绑定中:


但是,只有当值不为null时才会调用转换器。我在我的另一篇文章中找到了这个问题的答案。代码来自Clemens:

<Window.Resources>
    <model:PathSelector x:Key="FallbackPathSelector" />
</Window.Resources>
...

<ContentControl Content="{Binding MyPathSelector,
                          FallbackValue={StaticResource FallbackPathSelector}}"/>

我在我的另一本书中找到了这个问题的答案代码来自克莱门斯:

<Window.Resources>
    <model:PathSelector x:Key="FallbackPathSelector" />
</Window.Resources>
...

<ContentControl Content="{Binding MyPathSelector,
                          FallbackValue={StaticResource FallbackPathSelector}}"/>

你不能确保它永远不为空吗?@Evk不幸地不是。我有一个可以从中选择的元素列表,每个元素都有FirstPath属性。如果元素列表为空,我会有这种不希望出现的行为。然后,如果提供的值为null,您可以使用转换器返回SettingsPathSelectorViewModel的一些默认实例。@Evk您是否有指向此类转换器描述的链接?如果使用绑定的TargetNullValue怎么办?您不能确保它从不为null吗?@Evk不幸的是没有。我有一个可以从中选择的元素列表,每个元素都有FirstPath属性。如果元素列表为空,则我有这种不希望出现的行为。然后,如果提供的值为null,您可以使用转换器返回SettingsPathSelectorViewModel的某个默认实例。@Evk是否有指向此类转换器描述的链接?如果使用绑定的TargetNullValue怎么办?