我在代碼隱藏上有一個帶有 Click 事件的按鈕,如下所示:
private void ButtonManager_OnClick(object sender, RoutedEventArgs e)
{
var addButton = sender as FrameworkElement;
}
如果我轉移到 MVVM 并且沒有代碼隱藏,我使用帶有 Execute 的 Command 類,如下所示:
public override void Execute(object? parameter)
{
// sender?
}
我應該如何管理代碼隱藏中使用的“發件人為..”?
uj5u.com熱心網友回復:
您可以使用CommandParameter將控制元件系結到自身。但是將 ViewComponent 發送到 ViewModel 并更改它并不是一個好主意。因為在 MVVM 中,視圖不應該對視圖一無所知。如果您想更改 View 中的任何內容,您可以在 ViewModel 中定義屬性并將它們單獨系結到視圖。無論如何,您的問題的解決方案在下面的代碼中,但我不建議這樣做:
示例代碼
xml:
<Button Command="{Binding Command}" CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=.}"/>
視圖模型:
private void Execute(object? obj)
{
var sender = obj as FrameworkElement;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/436193.html
上一篇:WPF-將EventSetter連接到ICommand
下一篇:將WebView2映射到相對路徑
