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(刪除菜單項周圍的細邊框)
主站蜘蛛池模板: 米顿罗计量泵(科普)——韬铭机械 | 协议书_协议合同格式模板范本大全| 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | 南溪在线-南溪招聘找工作、找房子、找对象,南溪综合生活信息门户! | 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 祝融环境-地源热泵多恒系统高新技术企业,舒适生活环境缔造者! | 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 康明斯发电机,上柴柴油发电机,玉柴柴油发电机组_海南重康电力官网 | 座椅式升降机_无障碍升降平台_残疾人升降平台-南京明顺机械设备有限公司 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 | PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 单锥双螺旋混合机_双螺旋锥形混合机-无锡新洋设备科技有限公司 | 氧化锆陶瓷_氧化锆陶瓷加工_氧化锆陶瓷生产厂家-康柏工业陶瓷有限公司 | 杭州荣奥家具有限公司-浙江办公家具,杭州办公家具厂 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 能耗监测系统-节能监测系统-能源管理系统-三水智能化 | 硬齿面减速机_厂家-山东安吉富传动设备股份有限公司 | 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | 岸电电源-60HZ变频电源-大功率变频电源-济南诚雅电子科技有限公司 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 国产液相色谱仪-超高效液相色谱仪厂家-上海伍丰科学仪器有限公司 | 石英陶瓷,石英坩埚,二氧化硅陶瓷-淄博百特高新材料有限公司 | 土壤养分检测仪|土壤水分|土壤紧实度测定仪|土壤墒情监测系统-土壤仪器网 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 泰安办公家具-泰安派格办公用品有限公司 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | 东莞精密模具加工,精密连接器模具零件,自動機零件,冶工具加工-益久精密 | 国产液相色谱仪-超高效液相色谱仪厂家-上海伍丰科学仪器有限公司 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 双吸泵,双吸泵厂家,OS双吸泵-山东博二泵业有限公司 | 美国HASKEL增压泵-伊莱科elettrotec流量开关-上海方未机械设备有限公司 | 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 深圳市源和塑胶电子有限公司-首页 | 上海诺狮景观规划设计有限公司|