相关疑难解决方法(0)

有没有办法在XAML中链接多个值转换器?

我有一种情况需要显示一个整数值,绑定到我的数据上下文中的属性,然后通过两次单独的转换:

  1. 反转范围内的值(例如,范围是1到100; datacontext中的值是90;用户看到的值是10)
  2. 将数字转换为字符串

我意识到我可以通过创建自己的转换器(实现IValueConverter)来完成这两个步骤.但是,我已经有一个单独的值转换器,只执行第一步,第二步由Int32Converter覆盖.

有没有办法在XAML中链接这两个现有的类而不必创建另一个聚合它们的类?

如果我需要澄清这些,请告诉我.:)

谢谢.

data-binding wpf xaml ivalueconverter

117
推荐指数
4
解决办法
4万
查看次数

如何布尔&&两个可见性转换器

我有两个独立的可见性转换器,一个基于字段是否已更新,另一个基于是否允许查看字段.我对我页面上的每个文本项使用updatedField,以便在更新的字段旁边显示一个星号.但是某些用户只能根据权限级别看到某些文本项.

例如:

<Image Visibility="{Binding ElementName=MyObject, Path=UpdatedFields, Mode=OneWay, Converter={StaticResource updatedFieldConverter}, ConverterParameter=FieldToTest}" Source="Properties:Resources.star_yellow" />
Run Code Online (Sandbox Code Playgroud)

<TextBlock FontSize="21" Foreground="{DynamicResource LabelBrush}" Text="{x:Static Properties:Resources.Some_Text}" Visibility="{Binding Source={StaticResource allowedFields}, Path=Some_Text_Field, Converter={StaticResource visibilityConverter}}" />
Run Code Online (Sandbox Code Playgroud)

我的问题是,对于需要许可的字段,我需要运行两个转换器来确定星是否出现.有没有办法在两个转换器的结果上做一个布尔"And"?

我查看了这篇文章,但它似乎不允许将不同的参数集传递给两个不同的转换器.

------- --------更新

我还试图用这个xaml创建一个MultiValueConverter

<Image Grid.Row="4" Grid.Column="0" Source="star_yellow.png">
   <Image.Visibility>
      <MultiBinding Converter="{StaticResource combinedVisibilityConverter}" ConverterParameter="FieldToTest" >
         <Binding ElementName="allowedFieldsModel" Path="Some_Text_Field" Mode="OneWay" />                        
         <Binding ElementName="MyObject" Path="UpdatedFields" Mode="OneWay" />
      </MultiBinding>
   </Image.Visibility>
</Image>
Run Code Online (Sandbox Code Playgroud)

但是当它进入转换器时,两个值都是"DependencyProperty.UnsetValue".所以我显然在这里做错了.

- - - - 解 - - - - -

我不得不修改它,但后来它工作了.

<Image.Visibility>
    <MultiBinding Converter="{StaticResource combinedVisibilityConverter}" ConverterParameter="FieldToTest">
        <Binding Source="{StaticResource allowedFieldsModel}" Path="Some_Text_Field" />
        <Binding Path="MyObject.UpdatedFields" …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf converter

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

为什么Reverse for List和IEnumerable有两个完全不同的版本?

对于该List对象,我们有一个名为Reverse()的方法.
它反转了"就地"列表的顺序,它不会返回任何内容.

对于该IEnumerable对象,我们有一个名为Reverse()的扩展方法.
它返回另一个IEnumerable.

我需要在列表中以相反的顺序迭代,所以我不能直接使用第二种方法,因为我得到一个List,我不想反转它,只是向后迭代.

所以我可以这样做:

for(int i = list.Count - 1; i >=0; i--)
Run Code Online (Sandbox Code Playgroud)

要么

foreach(var item in list.AsEnumerable().Reverse())
Run Code Online (Sandbox Code Playgroud)

我发现它的可读性低于我拥有IEnumerable时的可读性

foreach(var item in list.Reverse())
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么这两种方法以这种方式实现,具有相同的名称.这很令人讨厌和困惑.

为什么没有一个名为BackwardsIterator()的扩展名在Reverse()的地方为所有IEnumerable工作?

我对这种选择的历史原因非常感兴趣,而不是"怎么做"的东西!

c# linq ienumerable reverse list

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

WPF数据绑定和级联转换器?

我想知道在使用wpf数据绑定时是否可以级联转换器.例如

<SomeControl Visibility="{Binding Path=SomeProperty, Converter={StaticResource firstConverter}, Converter={StaticResource secondConverter}}"/>
Run Code Online (Sandbox Code Playgroud)

它是否可能或者我是否必须创建一个结合了转换器A和B的功能的定制转换器?

data-binding wpf xaml binding converter

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