相关疑难解决方法(0)

如何在XAML中格式化TimeSpan

我正在尝试格式化绑定到TimeSpan属性的文本块.如果属性是类型DateTime但它失败,如果它是a,它可以工作TimeSpan.我可以使用转换器完成它.但我试图找出是否有其他选择.

示例代码:

public TimeSpan MyTime { get; set; }

public Window2()
{
    InitializeComponent();
    MyTime = DateTime.Now.TimeOfDay;
    DataContext = this;
}
Run Code Online (Sandbox Code Playgroud)

XAML

<TextBlock Text="{Binding MyTime,StringFormat=HH:mm}"/>
Run Code Online (Sandbox Code Playgroud)

我希望文本块只显示小时和分钟.但它显示为:

19:10:46.8048860

c# data-binding wpf xaml string-formatting

88
推荐指数
9
解决办法
7万
查看次数

FallbackValue如何与MultiBinding一起使用?

我问,因为它似乎不起作用.

假设我们绑定到以下对象:

public class HurrDurr
{
  public string Hurr {get{return null;}}
  public string Durr {get{return null;}}
}
Run Code Online (Sandbox Code Playgroud)

好吧,看来如果我们使用MultiBinding来反映这一点,就会显示回退值,对吗?

<TextBlock>
    <TextBlock.Text>                                
        <MultiBinding StringFormat="{}{0} to the {1}"
                        FallbackValue="Not set!  It works as expected!)">
            <Binding Path="Hurr"/>
            <Binding Path="Durr"/>
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

然而,结果实际上是"对".即使强制绑定返回DependencyProperty.UnsetValue也不起作用:

<TextBlock xmnlns:base="clr-namespace:System.Windows;assembly=WindowsBase">
    <TextBlock.Text>                                
        <MultiBinding StringFormat="{}{0} to the {1}"
            FallbackValue="Not set!  It works as expected!)">
            <Binding Path="Hurr"
                FallbackValue="{x:Static base:DependencyProperty.UnsetValue}" />
            <Binding Path="Durr"
                FallbackValue="{x:Static base:DependencyProperty.UnsetValue}" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

尝试使用TargetNullValue,它也是一个半身像.

所以似乎MultiBinding永远不会使用FallbackValue.这是真的吗,还是我错过了什么? …

wpf multibinding fallbackvalue

9
推荐指数
1
解决办法
6236
查看次数