我创建了这个简单的触发器:
public class SelectedChangedTrigger : TriggerAction<ListView>
{
protected override void Invoke(ListView sender)
{
var selectedItem = sender.SelectedItem as Item;
}
}
在XAML中:
<ListView.Triggers>
<EventTrigger Event="ItemSelected">
<triggers:SelectedChangedTrigger/>
</EventTrigger>
</ListView.Triggers>
所以我想将视图模型中的string
属性绑定到selectedItem.Title
答案 0 :(得分:0)
首先,我强烈建议,如果您需要更新ItemSelected
事件的视图模型,请使用EventToCommandBehaviour
to wire up the view's event with viewmodel's command。触发器只应用于基于视图的操作,如更新样式,控制状态等。
但是如果你仍然希望能够使用触发器,我想你可以通过使用BindingContext
和适当的强制转换来实现。
public class SelectedChangedTrigger : TriggerAction<ListView>
{
protected override void Invoke(ListView sender)
{
var selectedItem = sender.SelectedItem as Item;
var viewModel = selectedItem?.BindingContext as ViewModelType;
viewModel.PerformAction(); //<-- your view-model's method or property to update/invoke
}
}