SwipeItem XAML 绑定被忽略

2024-02-12

我无法让任何绑定适用于SwipeItem在一个RadListView(这类似于标准ListView)。特别是,我试图绑定到Command财产;但是,我尝试绑定到其他属性,例如,Text,但无济于事。

<telerikDataControls:RadListView ItemsSource ="{Binding Users, Mode=OneWay}">
    <telerikDataControls:RadListView.ItemTemplate>
        <DataTemplate>
             <SwipeControl>
                    <SwipeControl.RightItems>
                        <SwipeItems>
                            <SwipeItem Text="Delete"
                                       Background="Red"
                                       Foreground="White"
                                       Command="{Binding DeleteCommand}">
                                <SwipeItem.IconSource>
                                    <SymbolIconSource Symbol="Delete"/>
                                </SwipeItem.IconSource>
                            </SwipeItem>
                        </SwipeItems>
                    </SwipeControl.RightItems>
                    <Grid>
                        <TextBlock Text="{Binding Name"/>
                    </Grid>
             </SwipeControl>
        </DataTemplate>
    </telerikDataControls:RadListView.ItemTemplate>
</telerikDataControls:RadListView>

Users在 ViewModel 的构造函数中设置;它是一个ObservableCollection of UserViewModel,每个属性都有我尝试使用的属性(通过 PropertyChanged 事件)。

The Name装订工作在Grid在模板的更下方,我已经检查了DataContext of the SwipeControl这是一个UserViewModel。 在我的测试中我设置了一个Event on the SwipeItem:

 <SwipeItem Text="Delete"
            Background="Red"
            Foreground="White"
            Command="{Binding DeleteCommand}"
            Invoked="SwipeItem_Invoked">

并在后面的代码中处理它:

private void SwipeItem_Invoked(SwipeItem sender, SwipeItemInvokedEventArgs args)
{
    UserViewModel userToDelete = (UserViewModel)args.SwipeControl.DataContext;
}

我可以在这里看到sender.Command is null.

显然,快速的解决方案是使用事件模式;然而,我试图保持 MVVM 并尽可能避免代码隐藏。我以前从未遇到过与属性绑定的问题,所以想象一下我只是做了一些根本错误的事情。

Thanks.

Edit:

public class UserViewModel : MvxNotifyPropertyChanged // MvvmCross
{
    public IMvxAsyncCommand DeleteCommand { get; }

    private string _name;
    public string Name // this property is bound in the Grid but will not bind in the SwipeItem
    {
        get => _name;
        set => SetProperty(ref _name, value);
    } 
}

如果 Invoked 事件正在触发,但您无法使命令绑定正常工作,那么您可以尝试使用 XAML 行为(也称为混合行为)将命令连接到正在触发的事件。这应该可以让您的代码保持 MVVM 友好。

首先,安装 Microsoft.Xaml.Behaviors.Uwp.Managed nuget 包,然后将 XAML 更改为以下内容:

<SwipeItem xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
           xmlns:core="using:Microsoft.Xaml.Interactions.Core"
           Text="Delete"
           Background="Red"
           Foreground="White">
    <interactivity:Interaction.Behaviors>
        <core:EventTriggerBehavior EventName="Invoked">
            <core:InvokeCommandAction Command="{Binding Path=DeleteCommand}" />
        </core:EventTriggerBehavior>
    </interactivity:Interaction.Behaviors>
    <SwipeItem.IconSource>
        <SymbolIconSource Symbol="Delete"/>
    </SwipeItem.IconSource>
</SwipeItem>

为了使答案简洁,我在 SwipeItem 元素中定义了交互性和核心 xml 命名空间 - 但这些命名空间通常会移至 XAML 中的顶级元素。

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

SwipeItem XAML 绑定被忽略 的相关文章

  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • CLR 2.0 与 4.0 性能比较?

    如果在 CLR 4 0 下运行 为 CLR 2 0 编译的 NET 程序会运行得更快吗 应用程序配置
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • IdentityServer 4 对它的工作原理感到困惑

    我阅读和观看了很多有关 Identity Server 4 的内容 但我仍然对它有点困惑 因为似乎有很多移动部件 我现在明白这是一个单独的项目 它处理用户身份验证 我仍然不明白的是用户如何注册它 谁存储用户名 密码 我打算进行此设置 Rea
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • 函数参数的默认参数是否被视为该参数的初始值设定项?

    假设我有这样的函数声明 static const int R 0 static const int I 0 void f const int r R void g int i I 根据 dcl fct default 1 如果在参数声明中指
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • Rails - 从模型生成迁移脚本

    我正在学习 Rails 并且遇到了 Migrations 似乎每次我想要编辑模型时 我都需要添加迁移脚本 即使我尚未投入生产 您可以编辑模型 添加所需的所有属性 并在发布之前自动生成迁移脚本吗 Thanks 如果您使用的是 Rails 3
  • 如何在 FOSUserBundle 中为控制器重置设置 sender_name?

    我想更改名称sender name期间的电子邮件重置 我已经这样做了登记并取得了成功 这可以通过定义轻松完成fos user registration confirmation from email sender name 现在 我想为重置
  • 查询语言:参考查询请求

    跟着教程 有一个查询 query selectCommoditiesByOwner description Select all commodities based on their owner statement SELECT org a
  • 在 Ruby 中生成独立的线程或进程

    我可能会朝错误的方向接近这个问题 所以任何帮助将不胜感激 我有一个 Ruby 脚本 除其他外 它还启动一个可执行文件 我想启动这个可执行文件 当前正在使用系统 触发 然后继续执行脚本 当脚本完成时 我希望它退出但保持可执行文件运行 最初我有
  • 将一种模型转换为另一种模型的设计模式

    基本上 我的应用程序中有许多对象 我必须在发送请求之前将它们转换为另一个第三方对象 收到响应后 我必须将这些对象转换回我的应用程序支持的对象 在 Java 中 我可以使用什么模式将一个模型对象转换为另一个模型对象 我不认为有一个特定的模式
  • 如何从单个项目列表中删除未命名的元素?

    这听起来可能是一个非常初学者的问题 而且也可能是一个非常基本和愚蠢的问题 但不知怎的 我在做这件事时感到头疼 假设我有一个项目列表 v lt as list 1 2 3 v 1 1 1 2 3 现在我想将其所有项目拆分为单独的项目 v2 l
  • SQL - 查找只喜欢同一年级学生的学生的年级

    我正在做一门免费的斯坦福在线课程 这很酷 你应该看看 在过去的两天里我一直在绞尽脑汁 但找不到以下问题的答案 请帮忙 问题4 查找只有同年级朋友的学生的姓名和成绩 返回按年级排序的结果 然后按每个年级中的名称排序 当我最终认为我得到了答案时
  • HttpSessionListener 中的 sessionCreated() 是否自动与 request.getSession() 同步?

    Is sessionCreated 方法从HttpSessionListener自动同步于request getSession 称呼 特别是 我想知道在中设置会话属性是否是线程安全的sessionCreated 方法并检索属性request
  • Twitter bootstrap 轮播消失

    我想这可能是一个简单的问题 但我似乎无法弄清楚这一点 最好的解释方式就是让你看到 Link http dynastyfireplaces 3dcartstores com http dynastyfireplaces 3dcartstore
  • 如何在 Android 上的 WebView 中允许 HTTP 连接(而不是 HTTPS)?

    我有一个WebViewAndroid 上的应用程序 我想从使用的资源中获取数据HTTP仅有的 为此 我使用XMLHttpRequestJavaScript 中的 API 当我从其他任何地方获取数据时HTTPS resource 一切都好 但
  • 切换 JavaScript 函数

    我正在使用此代码来启动日志文件 function startTail str if str stop stopTail else t setTimeout getLog 1000 这称为使用
  • Android 布局 - 以编程方式设置自定义布局组件的值

    我定义了一个简单的自定义布局 其中包括文本视图和图像视图 在我的主布局中 我想多次使用此布局 并且想为代码中的这些文本和图像视图添加值 现在手动 但后来通过从数据库获取数据 我如何在我的代码中访问这些组件 这是我的主要布局 xml 文件
  • 用于多个可见 HTML 元素的 Aria 两种方式标签

    我有一组可以相互影响的元素 div class cont a href Click Me a span Count span class count span span span Count span class count span sp
  • 异步回发后性能下降 - 滚动变得可怕

    我的任务是帮助提高 ASP NET 4 5 Web 表单应用程序的性能 不幸的是 该应用程序使用了 updatepanel 他们真的很邪恶 http encosia com why aspnet ajax updatepanels are
  • 如何部署具有多个验证器的超级账本锯齿网络?

    我正在尝试至少配置一个锯齿网络2 验证者和一些事务处理器 我使用的是 Ubuntu 18 04 所以唯一可能的解决方案是使用 docker 我搜索了一整天的工作示例 但仍然没有运气 官网上有一个例子here https sawtooth h
  • iOS 中 UITableView 的展开/折叠部分

    有人可以告诉我执行方法吗UITableView可展开 可折叠动画sections of UITableView如下 or 您必须创建自己的自定义标题行并将其作为每个部分的第一行 子类化UITableView或者已经存在的标题会很痛苦 根据他
  • 在 apex salesforce 中调试可计划作业

    我正在尝试运行一个可调度的作业我从未在 salesforce 中使用过可调度的作业 这是我的代码 global class scheduledMerge implements Schedulable global void execute
  • 在不同的远程结账分支

    我有一个带有另一个遥控器的存储库upstream除了origin 我可以git checkout origin master 但是当我跑步时git checkout upstream master I get error pathspec
  • 在 R 中操作子矩阵

    Nh lt matrix c 17 26 30 17 23 17 24 23 nrow 2 ncol 4 Nh Sh lt matrix c 8 290133 6 241174 6 096808 7 4449672 6 894924 7 6
  • SwipeItem XAML 绑定被忽略

    我无法让任何绑定适用于SwipeItem在一个RadListView 这类似于标准ListView 特别是 我试图绑定到Command财产 但是 我尝试绑定到其他属性 例如 Text 但无济于事