WPF MultiBinding 为空绑定设置后备字符串

WPF MultiBinding set fallback string for a null binding

如果我不设置Date,结果会变成“price=2000, date=”。我可以改为“价格=2000,日期=未知”吗?

<TextBlock x:Name="Test">
    <TextBlock.Text>
        <MultiBinding StringFormat="{}price={0}, date={1:d}">
            <Binding Path="Price" />
            <Binding Path="Date" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>

public partial class MainWindow : Window
{
    public int Price { get; set; }
    public DateTime? Date { get; set; }
    public MainWindow()
    {
        InitializeComponent();
        Price = 2000;
        //Date = DateTime.Now;
        Test.DataContext = this;
    }
}

在这种情况下,您可以使用绑定的 TargetNullValue 属性:

<TextBlock x:Name="Test">
    <TextBlock.Resources>
        <local:DateConverter x:Key="DateConverter" />
    </TextBlock.Resources>
        
    <TextBlock.Text>
        <MultiBinding StringFormat="{}price={0}, date={1:d}">
            <Binding Path="Price" />
            <Binding Path="Date" TargetNullValue="unknown" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>