标签: fallbackvalue

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
查看次数

如何将绑定中的FallbackValue设置为外部图像文件的路径?

我正在尝试设置FallbackValue以防万一我的转换器无法调用,但我不知道该怎么做.

<Image Source="{Binding FallbackValue="Pictures/Unknown.png", Path=LatestPosition.DeviceFamily, Converter={x:Static conv:ConverterSet.DeviceTypeToImageSourceconverter}}" Name="image1" Stretch="Fill" Margin="5,8" Width="150" Height="150" Grid.RowSpan="4" />
Run Code Online (Sandbox Code Playgroud)

转换器中外部图像的路径看起来像那样,当LatestPosition!= null时,图像以适当的方式设置.

private static readonly ImageSource Dev1 = new BitmapImage(new Uri("/Pictures/dev1.png", UriKind.Relative));
private static readonly ImageSource Dev2 = new BitmapImage(new Uri("/Pictures/dev2.png", UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)

c# wpf binding converter fallbackvalue

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

当源对象可能没有给定属性时如何处理绑定?

我有两个具有不同属性的类,但都继承了其他一些基类:

public class BaseClass { }

public class ClassA : BaseClass
{
    public string PropertyA { get; set; }
}

public class ClassB : BaseClass
{
    public string PropertyB { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

代码隐藏:

public ObservableCollection<BaseClass> Items { get; set; }

public MainWindow()
{
    Items = new ObservableCollection<BaseClass>
        {
            new ClassA {PropertyA = "A"},
            new ClassB {PropertyB = "B"}
        };
}
Run Code Online (Sandbox Code Playgroud)

我的XAML看起来像这样:

<ListView ItemsSource="{Binding Items}">
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding="{Binding PropertyA, FallbackValue=''}"/>
            <GridViewColumn DisplayMemberBinding="{Binding PropertyB, FallbackValue={x:Null}}"/>
        </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

在调试模式下运行时,输出窗口显示: …

c# wpf binding fallbackvalue

7
推荐指数
1
解决办法
4133
查看次数

AppSettings 后备/默认值?

网络平台

对于我使用的每个 appSetting,我想指定一个值,如果在 appSettings 中找不到指定的键,则将返回该值。我本来打算创建一个类来管理它,但我想这个功能可能已经在 .NET Framework 中的某个地方了?

.NET 中是否有一个 NameValueCollection/Hash/etc 类型的类,可以让我指定一个键和一个后备/默认值——并返回键的值或指定的值?

如果有,我可以在调用它之前(从不同的地方)将 appSettings 放入该类型的对象中。

c# asp.net appsettings namevaluecollection fallbackvalue

5
推荐指数
2
解决办法
2万
查看次数

处理MultiBinding中绑定的bool后备值

我有一个MultiBinding转换器,根据我的两个Binding字段是否评估为true来确定控件的可见性.如果由于某种原因它无法达到这些bool属性中的任何一个,我想将它们设置为true.例如:

我目前拥有的代码是:

           <MultiBinding Converter="{StaticResource AndToVisibilityConverter1}" FallbackValue="Visible">
              <Binding Path="IsConnected" FallbackValue="true" />
              <Binding Path="CurrentUser.IsConsumerOnlyAgent" Converter="{StaticResource InvertedBooleanConverter1}" FallbackValue="True" />
           </MultiBinding>
Run Code Online (Sandbox Code Playgroud)

代码运行正常,但我在IDE的输出中收到错误消息,指出:

System.Windows.Data Error: 11 : Fallback value 'True' (type 'String') cannot be converted for use in 'Visibility' (type 'Visibility'). BindingExpression:Path=IsConnected; DataItem=null; target element is 'StackPanel' (Name=''); 
Run Code Online (Sandbox Code Playgroud)

我已经确定了这个转换器并验证了它是XAML错误的位置.对于这里的无知感到抱歉,但有没有办法可以将FallbackValue设置为这些绑定中的每一个,以便在未能获得设置路径时评估为"true"?提前致谢

更新:

这是我的可见性转换器的代码(我在我的应用程序的几个地方使用它,只想添加回退值):

   internal class AndToVisibilityConverter : IMultiValueConverter
  {
  public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
  {
     if (values == null)
        return Visibility.Collapsed;

     foreach (var value in values)
     {
        if (value == …
Run Code Online (Sandbox Code Playgroud)

wpf xaml binding multibinding fallbackvalue

2
推荐指数
2
解决办法
8176
查看次数