是否可以在 Silverlight 中绑定到 lambda 表达式?

2023-12-13

我有一个仅绑定到集合的列表框。该集合有一个子集合 (StepDatas)。我想绑定到子集合的计数,但使用 WHERE 语句。我可以绑定到 ChildCollection.Count 但在需要添加 lambda 表达式时会迷失方向。这是 XAML:

<ListBox Height="Auto" Style="{StaticResource ListBoxStyle1}" Margin="4,46,4,4" x:Name="lstLeftNavigation" Background="{x:Null}" SelectionChanged="lstLeftNavigation_SelectionChanged">
<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid Width="180" Margin="2,2,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" d:LayoutOverrides="Width" MinHeight="36">
            <TextBlock Text="{Binding StepNm}" x:Name="tbStepNm" Margin="10,0,34,0" TextWrapping="Wrap" FontFamily="Portable User Interface" Foreground="White" FontSize="10" FontWeight="Bold" VerticalAlignment="Center"/>
            <Image Height="37" HorizontalAlignment="Right" Margin="0" VerticalAlignment="Center"  Width="37" Source="Images/imgIcoChecked.png" Stretch="Fill"/>
        </Grid>
    </DataTemplate>
</ListBox.ItemTemplate>

上面的代码可以绑定到子集合的计数。不过,我希望显示满足特定条件的子集合的计数。在这种特定情况下,子集合具有完整的属性 (bool)。所以...我想显示计数 StepDatas.Where(x => x.Completed == true).Count。

这有可能吗?谢谢你的帮助!


对主题问题的简短回答是:不。

明智的答案是:确保Count您需要提供数据模型的属性。例如,确保暴露的类型StepDatas has a Count财产。

然而,你确实用“以任何方式可能?”来限定这一点。可以绑定到 ListItem 数据上下文并使用一些疯狂的值转换器来执行 lambda。然而,为了简单起见,您需要专门为您的 lambda 创建一个转换器。 转换器代码如下所示:-

 public class CountCompletedStepDatas : IValueConverter
 {

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
      YourItemsType item = (YourItemsType)value;
      return item.StepDatas.Were(x => x.Completed == true).Count().ToString(culture);
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
      throw new NotImplementedException();
    }
  }

您可以在 XAML 的 Resources 属性中创建此转换器的实例,为方便起见,可以在 UserControl 中使用:-

<UserControl x:Class="YourNameSpace.ThisControlName"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:local="clr-namespace:YourNameSpace;assembly=YourAssemblyName">
  <UserControl.Resources>
    <local:CountCompletedStepDatas x:Key="Counter" />
  </UserContro.Resources>

现在在您的绑定中:-

 <TextBlock Text="{Binding Converter={StaticResource Counter} }" ... >
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Silverlight 中绑定到 lambda 表达式? 的相关文章

随机推荐

  • PHP多维数组通过键获取值

    我有一个多数组 例如 a array key gt array sub key gt val dif key gt array key gt array sub key gt val 我的真实数组非常大 并且键都位于不同的位置 我已经开始编
  • 用自己的函数变换 mpl 向量

    我想将每个元素相乘mpl vector by an int 首先 一个元函数来乘以int 与int template
  • 如何使用 JavaScript 创建唯一 ID?

    我有一个表单 用户可以在其中为多个城市添加多个选择框 问题是每个新生成的选择框都需要有一个唯一的 id 这可以用 JavaScript 完成吗 这是选择城市的表格部分 另请注意 当选择特定州时 我使用一些 PHP 来填充城市
  • 如何调试错误:需要左值作为赋值的左操作数?

    我正在 Linux 上使用 gcc 编译器编译 c 程序 但是 我收到了显示为 错误 需要左值作为赋值的左操作数 的错误 该错误是由如下所示的代码行引起的 socklen t saddr size data2 ssize 我可以知道如何调试
  • 在 Jetty 中设置最大 URL 长度

    我查看并发现一些人在 Jetty 中遇到 GET 请求 URL 超过最大长度问题的答案是 将 jetty xml 中的 headerBufferSize 设置为更大的数字 如下所示本 Solr 故障排除手册 and this 但是 我很难理
  • 在 R 数据框中查找列值遵循序列的行

    我有一个如下数据框 它是分类器的输出 col1 class 123 2 122 5 124 7 125 9 126 15 127 2 128 19 129 5 130 7 179 9 180 3 我想找到具有特定类模式的行 例如类位于 se
  • 为什么我的IP地址以192开头?

    我来自非网络背景 我突然想知道为什么我工作的公司几乎都是 192 168 x x 这样的 ip 为什么他们不能有像 1 2 3 4 这样的东西 我知道ip有一个概念 叫做子网划分 此外 192 168 0 0 至 192 168 255 2
  • 有没有简单的方法可以在 JPanel 上画一个圆?

    我在使用 drawOval x y width height 方法时遇到问题 该方法假设 x 和 y 值代表 要绘制的椭圆形的左上角 的坐标 javadoc 我希望 x 和 y 值代表中心点一个圆圈 我该怎么做呢 谢谢 如果您提前声明了宽度
  • 通过对另外两个数组的所有元素应用二元运算来在 Swift 中创建数组

    Swift 中是否有一种通过对另外两个数组的元素应用二元运算来创建数组的简洁方法 例如 let a 1 2 3 let b 4 5 6 let c 0 lt 3 map a 0 b 0 c 5 7 9 如果你使用zip要组合元素 您可以参考
  • 精确浮点计算两个乘积的和与差

    两个乘积之差和两个乘积之和是在各种常见计算中发现的两个原语 diff of products a b c d ab cd 和 sum of products a b c d ab cd 是密切相关的伴随函数 仅部分操作数的符号不同 使用这些
  • 如何用C#发送彩信

    我需要通过 C 应用程序发送彩信 我已经发现了 2 个有趣的组件 http www winwap com http www nowsms com 有人有使用其他第三方组件的经验吗 有人可以解释一下我需要什么样的服务器来发送这些彩信吗 它是经
  • WCF ria 服务 SP1 超时已过期

    我的解决方案是 Silverlight 它使用 WCF RIA 服务 SP1 和实体框架 4 我在加载大尺寸数据时遇到问题 我收到此错误消息 System ServiceModel DomainServices Client DomainE
  • 同一 JPA 类的多个数据库支持

    我们的项目使用 MYSQL 和 Hibernate JPA用于将对象持久保存在数据库中 我们有多个具有相似代码的类 Entity Table name users class Users implement Serializable Id
  • 当出现 E_USER_DEPRECATED 级别错误时如何运行 Behat 测试

    我有一个 Symfony 2 7 表单类型 它导致了一些级别错误E USER DEPRECATED 这个错误不是来自我自己的代码 而是来自vendor symfony symfony src Symfony Bridge Doctrine
  • Python套接字模块:如何更改客户端的本地端口?

    我想使用 TCP IP 作为客户端从网络获取包 With connect TCP IP TCP PORT 我可以更改对等地址的端口 但是我改变了本地计算机的端口 编辑 我想使用带有四个端口的网卡 网卡连接到发送大量数据的测量设备 我如何查看
  • 如何从身份验证器重定向到外部身份验证端点?

    我正在编写一个网络应用程序 由于不同客户的需求 我希望拥有灵活的身份验证选项 我用的是官方的cakephp 身份验证库 但它没有 OpenID Connect 身份验证器 所以我正在滚动自己的 我遇到的问题是我无法返回修改后的Cake Ht
  • 解码 IntelliJ IDEA 文件夹名称颜色

    我有一个项目 有 4 个 Git 根 Project Project commons Project ui and Data Model 由于某些配置 我需要放置Project commons Project ui and Data Mod
  • 向 BroadcastReceiver 发送额外内容

    我有一个运行以下代码的活动 定义了时间和间隔 Intent buzzIntent new Intent getBaseContext BuzzReceiver class PendingIntent pendingIntent Pendin
  • 上周一的日期 Excel

    今天是 2013 年 2 月 27 日 星期三 我需要一个公式 该公式将返回上周一的日期 即 02 17 2013 我需要这样才能在发送电子邮件的 vba 代码中使用文件名或电子邮件主题 With oMail Uncomment the l
  • 是否可以在 Silverlight 中绑定到 lambda 表达式?

    我有一个仅绑定到集合的列表框 该集合有一个子集合 StepDatas 我想绑定到子集合的计数 但使用 WHERE 语句 我可以绑定到 ChildCollection Count 但在需要添加 lambda 表达式时会迷失方向 这是 XAML