我有一个WPF列表框,我目前正在使用一个可见性转换器绑定到当前项目的返回。 但是,我想传递对象,而不是传入返回值。
我尝试使用/而不是Path = Returns但它不再调用转换器。关于我做错了什么想法?
<ListBox Name="BetsListBox" BorderThickness="0" ItemsSource="{Binding Path=Wagers}" FontFamily="Arial Black" FontSize="12">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock FontFamily="Arial" Text="{Binding Path=UnitStake, StringFormat={}{0:N2}}" />
<TextBlock FontFamily="Arial" Text="{Binding Path=WagerType}" Margin="5,0" />
<TextBlock FontFamily="Arial" Text="{Binding Path=CalculatedStake, StringFormat={}{0:N2}}" />
<StackPanel Margin="-5,0" Visibility="{Binding Path=Returns,Converter={StaticResource BetWagerPotentialReturnToVisibilityConverter1}}" Orientation="Horizontal">
<TextBlock HorizontalAlignment="Left" FontWeight="Bold" Text=", Bet Returns" FontFamily="Arial" FontStretch="ExtraCondensed" Margin="5,0,5,0"/>
<TextBlock FontWeight="Bold" Text="{Binding PotentialReturns, StringFormat={}{0:N2}}" ToolTip="{Binding Name}" FontFamily="Arial" FontStretch="ExtraCondensed" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:5)
您是否尝试过直接使用Binding?
编辑:
我的不好,忘记删除逗号:
Visibility="{Binding Converter={StaticResource BetWagerPotentialReturnToVisibilityConverter1}}"
答案 1 :(得分:1)
在绑定中,当你没有指定路径时,它意味着绑定到当前DataContext
,在这种情况下,它是ListBox的ItemsSource
中的相应项:
<StackPanel Visibility="{Binding Converter={StaticResource
BetWagerPotentialReturnToVisibilityConverter1}}" >
答案 2 :(得分:1)
如果"{Binding}"
的标记中没有其他内容,您可以Binding
,但如果您想添加Converter
,那么您必须使用.
1}}表示'这个对象'的符号:
<StackPanel Margin="-5,0" Visibility="{Binding Path=., Converter={StaticResource
BetWagerPotentialReturnToVisibilityConverter1}}" Orientation="Horizontal">
...
</StackPanel>
您可以在MSDN上的Binding.Path Property页面上找到更多信息。
更新&gt;&gt;&gt;
为了澄清这种情况,您可以通过多种方式将数据绑定到XAML中的整个对象:
如果您有逗号,那么将需要使用.
表示法来避免编译错误:
<StackPanel Margin="-5,0" Visibility="{Binding ., Converter={StaticResource
BetWagerPotentialReturnToVisibilityConverter1}}" Orientation="Horizontal">
...
</StackPanel>
如果此处没有逗号,则不需要使用.
表示法:
<StackPanel Margin="-5,0" Visibility="{Binding Converter={StaticResource
BetWagerPotentialReturnToVisibilityConverter1}}" Orientation="Horizontal">
...
</StackPanel>
此外,设置Path
(如原始示例中所示)是可选的,并且可以省略此关键字(如上面的两个示例中所示)。