pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

使用父級的 DataContext(WPF - 動態菜單命令綁定)

Using the parent#39;s DataContext (WPF - Dynamic Menu Command Binding)(使用父級的 DataContext(WPF - 動態菜單命令綁定))
本文介紹了使用父級的 DataContext(WPF - 動態菜單命令綁定)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我瀏覽了這個網站和谷歌,但這些解決方案對我不起作用.

I looked over this web and google and the solutions didn't work for me.

我在 UserControl 的 ViewModel 上有一個命令.好吧,用戶控件有一個綁定到 ObservableCollection 的 ItemsControl.在 ItemsControl.ItemTemplate 的 DataTemplate 中,我有一個按鈕,我想使用該命令.我無法綁定命令,因為在 DataTemplate 內部,數據上下文不是 ViewModel,而是 ObservableCollection 的一個項目.

I have a command on the ViewModel of a UserControl. Well, The usercontrol have a ItemsControl binded to a ObservableCollection. Inside the DataTemplate of the ItemsControl.ItemTemplate I have a button and I want to use the command. I can't bind the command because inside the DataTemplate, the datacontext is not the ViewModel but an item of the ObservableCollection.

問題是:如果丟失了父數據上下文,我如何將按鈕綁定到命令?

The question is: How can I bind the button to the command if a lost the parent datacontext?

我認為這需要一個簡單的解決方案,因為我認為這是一個常見問題.

I think that this need to have an easy solution because I think that this is a common problem.

想象一下這個場景:

您有一個以 observableCollection 作為 ItemsSource 的 ListBox 項目,因此您在 ListBox 內為集合中的每個元素使用了一個數據模板.好吧,您想刪除所選項目,并在該作業的每一行中放置一個按鈕.?你是怎么做到的?

You have a ListBox item with an observableCollection as the ItemsSource, so you are using a datatemplate inside the ListBox for every element in the collection. Well, you want to delete the selected item and you put a button in every row for that job. ?How do you do that?

在MVP中,我可以在按鈕的點擊事件中做到這一點:

In MVP, I can do this in the click event of the button:

Button but = e.Source as Button;

if (but != null)
      Presenter.ActualNote = but.DataContext as Note;

簡而言之.您將行(所選項目)的數據上下文發送給演示者.

In short. You send the datacontext of the row (the selected item) to the presenter.

但是,我怎樣才能以 mvvm 的方式做到這一點?因為我需要使用命令但我無法將命令分配給按鈕,因為按鈕對 ViewModel(命令所在的位置)一無所知.

But, how can I do it in the mvvm way? Because I need to use a command but I can't assign the command to the button because the button does know nothing about the ViewModel (where the command exists).

如您所見,按鈕必須存在于數據模板中,然后數據上下文不再是 ViewModel ......這就是為什么我需要訪問父級的 DataContext,以訪問命令.

As you can see, the button has to exist inside the datatemplate, then the datacontext is not the ViewModel anymore.... There is why I need to access to the parent's DataContext, for access to the command.

我希望你能更好地理解我的問題.

I hope that you understand my problem better.

謝謝.

推薦答案

如果你想要一個骯臟的、破壞 MVVM 的解決方案,那么在按鈕上設置 Tag="{Binding}" 并處理 Click 事件.在事件處理程序中,調用 ViewModel 上的命令.

If you want a dirty, MVVM-breaking solution, then set the Tag="{Binding}" on the button and handle the Click event. In the event handler, call the command on your ViewModel.

這篇關于使用父級的 DataContext(WPF - 動態菜單命令綁定)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Right-click on a Listbox in a Silverlight 4 app(右鍵單擊 Silverlight 4 應用程序中的列表框)
WPF c# webbrowser scrolls over top menu(WPF c# webbrowser 在頂部菜單上滾動)
C# Console app - How do I make an interactive menu?(C# 控制臺應用程序 - 如何制作交互式菜單?)
How to avoid duplicate form creation in .NET Windows Forms?(如何避免在 .NET Windows Forms 中創建重復的表單?)
UI Automation Control Desktop Application and Click on Menu Strip(UI自動化控制桌面應用程序并單擊菜單條)
Removing thin border around the menuitems(刪除菜單項周圍的細邊框)
主站蜘蛛池模板: 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 棉柔巾代加工_洗脸巾oem_一次性毛巾_浴巾生产厂家-杭州禾壹卫品科技有限公司 | 天然鹅卵石滤料厂家-锰砂滤料-石英砂滤料-巩义东枫净水 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械| 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | 烘干设备-热泵烘干机_广东雄贵能源设备有限公司 | NM-02立式吸污机_ZHCS-02软轴刷_二合一吸刷软轴刷-厦门地坤科技有限公司 | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 沥青车辙成型机-车托式混凝土取芯机-混凝土塑料试模|鑫高仪器 | 微动开关厂家-东莞市德沃电子科技有限公司 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 书信之家_书信标准模板范文大全 最新范文网_实用的精品范文美文网 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 热工多功能信号校验仪-热电阻热电偶校验仿真仪-金湖虹润仪表 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | PAS糖原染色-CBA流式多因子-明胶酶谱MMP-上海研谨生物科技有限公司 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 精准猎取科技资讯,高效阅读科技新闻_科技猎 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 汝成内控-行政事业单位内部控制管理服务商 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 |