Xamarin.Forms bindingContext 将源设置回 root/parent

2023-11-26

I got a ViewModel用命令(AddToFavoriteCommand)不会被调用。现在它只关注中的命令CustomPin class,不是viewModel。我正在设置我的viewModel to the BindingContext后面的代码中的页面。

但由于它枚举了我的自定义引脚集合,因此它会照顾那里的命令。我需要回到根源。我可能需要更改源但无法使其工作。

<ContentPage.Content>
    <StackLayout>
        <AbsoluteLayout>
            <Button Text="{Binding Filter}" Command="{Binding GotoFilterPageCommand}" />
        </AbsoluteLayout>
        <ListView x:Name="ListView" RowHeight="60" ItemsSource="{Binding CustomPins}" ItemSelected="OnItemSelected">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <ViewCell.ContextActions>
                            <MenuItem Text="Favorite" Command="{Binding AddToFavoriteCommand}" />
                            <MenuItem Text="..." CommandParameter="{Binding .}" Clicked="OnMoreClicked" />
                        </ViewCell.ContextActions>
                        <StackLayout Padding="5" Orientation="Vertical" >
                            <Label Text="{Binding ParkingLot.Street}" FontSize="Medium" />
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage.Content>

代码隐藏(删除了我不需要的所有其他逻辑,例如单击事件)

[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ParkingListPage : ContentPage
{
    public ParkingListPage()
    {
        InitializeComponent();
        BindingContext = new ParkingListViewModel();
    }
}

My ViewModel

public class ParkingListViewModel
{
    public ParkingListViewModel()
    {
        AddToFavoriteCommand = new Command(Test);
    }

    private void Test()
    {
    }

    public IEnumerable<CustomPin> CustomPins { get; set; } = SampleParkings.Parkings;

    public Command AddToFavoriteCommand { get; }
}

试试这样:

<ContentPage x:Name="YourPageName">
    <ContentPage.Content>
        <StackLayout>
            <AbsoluteLayout>
                <Button Text="{Binding Filter}" Command="{Binding GotoFilterPageCommand}" />
            </AbsoluteLayout>
            <ListView x:Name="ListView" RowHeight="60" ItemsSource="{Binding CustomPins}" ItemSelected="OnItemSelected">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <ViewCell.ContextActions>
                                <MenuItem Text="Favorite" Command="{Binding Path=BindingContext.AddToFavoriteCommand, Source={x:Reference YourPageName}}" />
                                <MenuItem Text="..." CommandParameter="{Binding .}" Clicked="OnMoreClicked" />
                            </ViewCell.ContextActions>
                            <StackLayout Padding="5" Orientation="Vertical" >
                                <Label Text="{Binding ParkingLot.Street}" FontSize="Medium" />
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

请注意我如何添加x:Name元素到页面的根目录。当然,还有更多属性,请将它们留在那里,但为了清楚起见,我在这里将它们省略了。

其次,请注意我如何从MenuItem绑定并添加Path=BindingContext.。这样它将绑定到BindingContext由名称标识的元素,在我们的例子中ContentPage.

可以在此处找到示例项目:https://github.com/jfversluis/SampleParentBinding

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

Xamarin.Forms bindingContext 将源设置回 root/parent 的相关文章

  • XAML 中的“{x:Static}”是什么意思?

    什么是 x Static 在 XAML 中是什么意思 代码示例
  • XAML - 带有触发器/参数的通用文本框样式?

    我希望能够拥有一个通用样式模板 可以根据布尔值切换文本框的颜色 但我不想为每个文本框创建独特的样式 我该怎么做呢 我在下面放置了一些示例代码 我希望它如何工作 三个文本框 均具有不同的绑定 但尝试使用相同的模板基于布尔值选择红色或绿色 Th
  • 按下按钮时更改几何绘图画笔的颜色

    我创建了一个按钮模板 有一个图像和一个标签 图像的来源位于 ResourceDictionary Pictures 中 图片的来源是具有白色画笔颜色的 DrawingImage
  • Android 上的 Xamarin.Forms“应用程序已停止工作”

    所以我刚才遇到了这个错误 这导致我的 Android 应用程序无法在设备上运行 每当我调试 Android 应用程序时 它都会因某种原因崩溃 作为 Xamarin 的新用户 我一无所知 这是我收到的错误 art Late enabling
  • 如何在后面的代码中访问 C# Metro UI 中数据模板内的控件

    我有一个位于 Flipview 数据模板内的 MediaElement 我想在后面的代码中访问名为 video 的 MediaElement 以便我可以通过按钮分配播放 暂停等属性 这是我想做的代码
  • 如何正确绑定和更新 Xamarin.Forms ListView?

    使用 MVVM 模式 我有一个模型 ViewModel 和视图 其中包含一个 ListView ListView 绑定到 ViewModel 的成员 该成员是 Model 类的 ObservableCollection 我可以使初始显示的绑
  • System.Net.Http.HttpClient 不尊重超时并每次使用默认值

    我正在使用 HttpClient 与具有大量 api 的 Web 服务 由我的公司编写 进行交互 所有 api 都工作得很好 除非其中一个 较大且较慢的 需要超过 100 秒才能给出答案 过了那个时间我收到以下错误 注意 如果 api 花费
  • Xamarin.Forms 绘图[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在为客户构建一个 Xamarin Forms 项目 我们需要一个图形库它将处理实时流式传输的数据连
  • 使用 INotifyPropertyChanged

    有人可以解释一下为什么在 wpf 中使用绑定时需要使用 INotifyPropertyChanged 的 实现吗 我可以在不实现此接口的情况下绑定属性吗 例如我有代码 public class StudentData INotifyProp
  • SQLite创建连接时出现异常

    我在创建连接时收到 SQLite 异常 这在我安装 VS2015 RTM 之前有效 客户端 PCL databaseConnection DependencyService Get
  • MvvmCross 在 Xamarin Studio 中工作吗?

    我花了一段时间得到一个直接的答案 我做了很多搜索和阅读 并尝试了很多东西 有时听起来是可能的 有时听起来只有通过进行链接和其他操作才可能实现 这是我试图避免的事情 我是 PCL 的忠实粉丝 我使用 Visual Studio 2012 Xa
  • Winforms 中的 WPF ElementHost 最大化时崩溃 (Windows)

    我正在尝试将新的 WPF 控件集成到现有的 WinForms 应用程序中 并使用 ElementHost Dock Fill 来托管以下 XAML UserControl NET 4 当我将 WinForm 设置为最大化时 我的整个操作系统
  • WPF 绑定 CompositeCollection 中的 MenuItem 不起作用

    我在将命令绑定到复合集合中的菜单项时遇到问题 这MenuItem是其一部分ContextMenu这是定义在UserControl Resources 问题是新标签的绑定不起作用 当我将 MenuItem 放置在复合集合之外时 它将起作用 有
  • Xamarin:找不到“libmonodroid.so”模拟器错误

    我已经遇到这个问题几天了 但还没有找到解决方案 我一直在使用Android 7 0 ARM armeabi v7a 我的模拟器的图像 因为它太慢了 我一直在尝试使用Android 7 0 Intel Atom x86 64 with HAX
  • 使用资源定义厚度

    在 Windows UWP 应用程序项目中 我尝试通过分配给其厚度来定义厚度Left Top Right and Bottom特性
  • 是什么导致 WPF 打印机输出被光栅化?

    我在 WPF 中遇到了许多打印问题 其中正在打印的特定项目组合会突然触发打印机输出的光栅化 导致打印机输出丑陋且庞大 并可能导致打印每页需要 30 秒 我发现在控件上设置任何级别的不透明度之类的事情通常会触发此问题 我忘记了它还有什么作用
  • Xamarin.Android 没有“android:exported”属性设置错误

    当 Xamarin Android 设置为 Android 12 时 我收到 您上传了包含活动的 APK 或 Android 应用程序包 具有意图过滤器的活动别名 服务或广播接收器 但是 没有设置 android exported 属性 该
  • 如何将 Hex 或 RGB 颜色分配给 Android Converter 中的 MvxColor

    我有如下转换器 我想返回我自己的十六进制或 RGB 颜色 In iOS public class PinkSelectedWhiteUnselectedValueConverter MvxValueConverter
  • xamarin 表单中标签的数据绑定部分

    我在 Xamarin 表单中使用 Label 我必须显示一个文本 它基本上是一个句子 但该字符串的一部分包含我从 api 调用获得的数字 而字符串的其余部分是固定的 我想使用数据绑定来设置该部分 例子 文字可以是这样的 您肯定可以赢得 0
  • 如何使取消按钮像“X”按钮一样工作?

    在我的 XAML 文件中 我有一个窗口 我试图将其设置为无论用户单击 X 按钮还是单击 取消 按钮 行为都是相同的 我的缩写代码如下 public partial class Dialog Window private void Windo

随机推荐

  • 如何在android中以编程方式更改应用程序小部件中的图像

    我设计了一个 Android 应用程序小部件 其中有两个ImageView我想更改两个图像ImageView当单击图像以及调用方法时 现在我用RemoteView像这样 RemoteViews views1 new RemoteViews
  • 为什么 Activity 中的 onCreate() 受到保护?

    为什么Activity中的onCreate 受到保护 或者我应该问 为什么它有效 受保护的方法只能在类本身或其后代的内部调用 所以Android系统不能像 act onCreate 那样调用它 那么 怎么称呼呢 顺便说一句 为什么 OnCl
  • xgboost 多类工作中的 base_score 有什么用?

    我正在尝试探索 Xgboost 二元分类以及多类的工作原理 在二进制类的情况下 我观 察到基本分数被认为是起始概率 并且在计算时也显示出重大影响Gain and Cover 在多类别的情况下 我无法弄清楚的重要性基本分数参数 因为它向我显示
  • 如何使用 SVN 日志检测修改的属性

    背景 编写一个自动发布脚本 从SVN导出版本之间更改的文件并上传到远程服务器 svn log 命令显示修改的文件and属性 但似乎没有区分内容修改和属性修改之间的详细输出 我是否错误地读取了此输出 或者是否有一种简单的方法可以获取修订之间已
  • 从网站打开资源管理器窗口

    我的公司有一个用于项目的共享网络文件夹 该文件夹包含我们每个客户的子文件夹 每个子文件夹包含为这些客户完成的项目的所有信息 有道理 是吗 OK 我收到了一项任务 当在我们公司的 MS CRM 中查看客户帐户时 允许用户单击一个按钮 打开资源
  • Try/Catch 内部或外部函数

    我有一个关于使用最佳实践的非常基本的问题try catch 我有一个像这样的简单函数 DAO public void addVehicle Vehicle vehicle em getTransaction begin em persist
  • 如何让 Spring Security 接受 JSON 而不是表单参数?

    我正在尝试更改 JHipster 以便它使用 JSON 对象而不是表单参数进行身份验证 我已经设法使其适用于 JWT 身份验证机制 现在我想为其他身份验证选项执行此操作 有没有一种简单的方法可以更改 Spring Security 的默认安
  • void main() { if(sizeof(int) > -1) printf("true"); }否则 printf("假"); ; [复制]

    这个问题在这里已经有答案了 void main if sizeof int gt 1 printf true else printf false 我期望输出为真 但结果是假的 谁能解释一下输出的原因 sizeof int 属于类型size
  • 检查点是否在圆内

    我有一个以纬度 经度表示的点 Position louvreMuseum new Position 48 861622 2 337474 我有一个以米表示的半径值 我需要检查另一个点 也以纬度 经度表示 是否在圆内 如果我在平坦的表面上 我
  • Webservice 无法在 Android Retrofit 中工作,但可以在 Postman 和 Swift / iOS 中工作,获取 401 Unauthorized

    技术内容 之前的简报对于使用 Retrofit 并不陌生 但遇到了这种奇怪的行为 我很难理解和修复它 我有两个网络服务 在 Postman 和 iOS 中都按预期工作正常 但只有一个在 Retrofit 中工作 而另一个则不行 在我的辩护中
  • Android应用如何自动切换为深色模式?

    我正在制作一个 Android 应用程序 我为深色模式制作了另一个 UI 这就是我所需要的 该应用程序将在当地时间之前自动切换到深色主题 例如 当当地时间太阳落山时 应用程序将切换到黑暗模式 或者另一种选择是在一天中预设的时间切换到深色模式
  • Visual Studio for ASP.NET 5 项目是否需要 .sln 文件?可以只使用 Global.json 吗?

    在 ASP NET 5 项目中 Visual Studio 创建了一个SLN文件 还有一个global json我的理解是核心解决方案文件 Is SLN文件只是为了 VS 支持 你可以在VS中打开一个解决方案而不使用SLN file 我假设
  • Chrome 和 Safari 缓存 302 重定向

    人们已经提出了各种不同的问题 但我还没有看到真正的答案 我们有一个单独的图像服务 我们的网络应用程序使用它来获取一些图像 图像服务经过良好测试并且运行正常 具体来说 我们的应用程序由domain com The src的元素img元素是im
  • 无法连接到端口 5432 上的 Postgresql

    我在运行 Ubuntu Server 14 04 的服务器上安装了 PostgreSQL 9 3 如果我通过终端 ssh 进入服务器 我就可以使用 psql 连接 但是当我尝试配置 pgAdmin III 进行远程连接时 我得到 服务器不监
  • Emacs 有 BNF 模式吗?

    我必须编辑大量 bnf 格式的语法文件 Emacs 中有这样的模式吗 我查看了 CEDET 的语义包 它似乎曾经有 bnf 模式 但现在不再有 这段代码可以在谷歌上搜索 但语义 bnf mode 似乎不存在 autoload semanti
  • 在 shell 脚本运行时编辑它

    您可以在 shell 脚本运行时对其进行编辑并使更改影响正在运行的脚本吗 我很好奇 csh 脚本的具体情况 我让该批处理运行一堆不同的构建风格并运行整夜 如果我在操作过程中发生了一些事情 我想进去添加额外的命令 或者注释掉未执行的命令 如果
  • 对于未关闭“扩展保护”的非 IE 浏览器,对 AD FS 进行 NTLM 身份验证?

    当从在 Windows 上运行的 Google Chrome 或 Firefox 3 5 对 AD FS 2 0 使用 NTLM 身份验证时 这会导致重复登录对话框并最终登录失败 并出现 审核失败 事件 状态为 状态 0xc000035b
  • “非零退出状态” R 3.6.0“Biobase”

    我需要在 R 上安装不同的软件包 操作系统是 ubuntu for windows 当我尝试 BiocManager install Biobase 时 出现以下错误 R data inst byte compile and prepare
  • 在 Perl 中,如何等待线程并行结束?

    我有一个 Perl 脚本 它启动 2 个线程 每个处理器一个 我需要它等待线程结束 如果一个线程结束 就会生成一个新线程 看来 join 方法会阻塞程序的其余部分 因此第二个线程无法结束 直到第一个线程所做的所有事情都完成为止 这违背了它的
  • Xamarin.Forms bindingContext 将源设置回 root/parent

    I got a ViewModel用命令 AddToFavoriteCommand 不会被调用 现在它只关注中的命令CustomPin class 不是viewModel 我正在设置我的viewModel to the BindingCon