gpt4 book ai didi

datagrid - 将字段的值传递给 Silverlight ConverterParameter

转载 作者:行者123 更新时间:2023-12-04 00:51:21 27 4
gpt4 key购买 nike

我正在编写我的第一个 Silverlight 应用程序。我有一个数据网格,其中有一列有两个标签,对于标签,我使用 IValueConverter 有条件地格式化数据。

标签的“内容”设置如下:

Content="{Binding HomeScore, Converter={StaticResource fmtshs}}"


Content="{Binding AwayScore, Converter={StaticResource fmtshs}}"

转换 我的 IValueConverter 的方法是这样的:
Public Function Convert(
ByVal value As Object,
ByVal targetType As System.Type,
ByVal parameter As Object,
ByVal culture As System.Globalization.CultureInfo) As Object
Implements System.Windows.Data.IValueConverter.Convert

Dim score As Long = value, other As Long = parameter

Return If(score < 0, "",
If(score - other > 5, (other + 5).ToString, score.ToString)
)

End Function

所以我想做的是在 HomeScore 的转换器中,我想将 AwayScore 传递给 ConverterParameter,而对于 AwayScore,我想将 HomeScore 传递给转换器。在任一分数的转换器中,我需要能够知道另一个分数的值以用于格式化目的。

但我无法弄清楚将 ConverterParameter 绑定(bind)到另一个字段的语法。
我尝试了以下方法:
Content="{Binding HomeScore, Converter={StaticResource fmtshs}, ConverterParameter=AwayScore}"  
Content="{Binding HomeScore, Converter={StaticResource fmtshs}, ConverterParameter={AwayScore}}"
Content="{Binding HomeScore, Converter={StaticResource fmtshs}, ConverterParameter={Binding AwayScore}}"

但这些似乎都不起作用。如何将字段值传递给 ConverterParameter?

最佳答案

因为除了文字你不能传递任何东西到 ConverterParameter解决方案是将整个对象传递给转换器,然后您可以从转换器中访问它的所有属性。

所以你的代码变成了(假设你的对象被称为 Match ):

Public Function Convert(
ByVal value As Object,
ByVal targetType As System.Type,
ByVal parameter As Object,
ByVal culture As System.Globalization.CultureInfo) As Object
Implements System.Windows.Data.IValueConverter.Convert

Dim match As Match = value

' Do stuff with match'

End Function

(抱歉代码中缺少细节)

然后你的 XAML 变成
Content="{Binding Converter={StaticResource fmtshs}}"

注意 虽然您显然是直接绑定(bind)到转换器,但实际上并非如此。您正在绑定(bind)到数据上下文而没有指定 Path所以你可以使用访问整个事情。

Source

关于datagrid - 将字段的值传递给 Silverlight ConverterParameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1345170/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com