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>
如果我不设置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>