亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有按鈕列的 WPF MVVM 網格

帶有按鈕列的 WPF MVVM 網格

C#
回首憶惘然 2021-12-25 16:45:36
我正在遵循 MVVM 模式。我有一個包含幾列的網格,其中一列包含 Button。單擊按鈕我想打開對話框,該對話框將顯示與單擊按鈕的特定行相關的數據。但問題在于綁定,因為我無法將控件與視圖模型綁定。<Button  Command="{Binding Path=ParentRow.DataContext,          RelativeSource={RelativeSource AncestorType={x:Type UserControl}},         UpdateSourceTrigger=PropertyChanged, Mode=Default}"          lib:Event.Binding="Click.[**NameOfViewModelMethod**]" >                                      </Button>  
查看完整描述

2 回答

?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

你沒有顯示你所有的代碼和上下文,但它應該像這樣工作我假設你在一個用戶控件中校準父數據上下文......(以列表視圖為例):


<ListView   ItemsSource="{Binding listFromDataContext, IsAsync=True}" Margin="3,51,0,10"    >


<ListView.ItemTemplate >

<DataTemplate>

<grid>

 <Button   Command="{Binding DataContext.MyMethode, RelativeSource={RelativeSource AncestorType={x:Type controls:thisUserControl}}}" CommandParameter="{Binding}"   />

</grid>

</DataTemplate>

  </ListView.ItemTemplate >

</ListView>

然后在模型中


      private ICommand _MyMethode;

            public ICommand MyMethode

            {

                get

                {

                    return _MyMethode ?? (_MyMethode = new CommandHandler<MyModel.item>(x => showMessage(x), _canExecute));

                }

            }


public void showMessage(MyModel.item x)

{

MessageBox.Show(x.Info);

}


查看完整回答
反對 回復 2021-12-25
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

首先,如果您Button在 a 中Grid,DataContext則不需要設置Pathlike Path=ParentRow.DataContext。

你的Command綁定應該是這樣的:

<Button Command="{Binding YourVMICommand"} />

您必須public ICommand在 VM 中定義一個,然后將其綁定到按鈕。


查看完整回答
反對 回復 2021-12-25
  • 2 回答
  • 0 關注
  • 184 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號