【问题标题】:Bind to string of self control绑定自控字符串
【发布时间】:2012-04-29 02:38:44
【问题描述】:

我有一个要在 xaml 中使用的自定义转换器。如果值等于 0,转换器只会放置 Admin,如果值等于 2,则放置 Cashier,等等。

不管怎样,这就是我要找的。​​p>

 <ComboBoxItem Content="{Binding 'I want to place the value in here', Converter={StaticResource MyConverter}}"></ComboBoxItem>      

所以如果我放置:

 <ComboBoxItem Content="{Binding '0', Converter={StaticResource MyConverter}}"></ComboBoxItem>  

我希望它将值 0 传递给我的转换器。我怎样才能做到这一点?


我知道我可以作弊并做类似的事情:

 <Label  Name="L1" Visiblity="hidden">0</Label>
 <ComboBoxItem Content="{Binding, ElementName='L1', Path='Content' Converter={StaticResource MyConverter}}"></ComboBoxItem> 

但那是多余的

【问题讨论】:

  • 我不明白您的问题,除了实际放置绑定(即设置 Path= 等)外,您所做的正是您所展示的。您是否不熟悉如何进行一般绑定?
  • 我有一个转换器,它依赖于日期和文化等逻辑,因此我想在后面的代码中使用它。我想通过将它绑定到列表视图和标签来使用它......

标签: c# wpf xaml binding converter


【解决方案1】:

我知道你已经接受了我的第一个答案,但这里有另一种方法,它可能更有效。

<Control ...
         xmlns:sys="clr-namespace:System;assembly=mscorlib"

    <Control.Resources>
        <sys:Int32 x:Key="Zero">0</sys:Int32 >
    </Control.Resources>

    <ComboBoxItem Content="{Binding Source={StaticResource Zero}, 
                                    Converter={StaticResource MyConverter}}">

</Control>

【讨论】:

    【解决方案2】:

    好吧,既然你的实现似乎是一个 hack,你可以使用另一个 hack:

    <ComboBoxItem Tag="0" 
                  Content="{Binding RelativeSource={RelativeSource Self}, 
                                    Path=Tag, 
                                    Converter={StaticResource MyConverter}}">
    

    【讨论】:

      猜你喜欢
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      相关资源
      最近更新 更多