我有一个非常简单的listview,其中itemsource绑定到集合。然后,我有一个委托命令(来自Prism),当我单击其中一项时,要调用该命令。不幸的是,itemsource中的绑定无法正常工作。当我直接在列表视图中设置Attachedcommandbehavior时,它将调用该方法。
也许有人可以帮忙。
<ListView ItemsSource="{Binding col}">
<ListView.ItemContainerStyle>
<Style>
<Setter Property="c:CommandBehavior.Event" Value="PreviewMouseDown"/>
<Setter Property="c:CommandBehavior.Command" Value="{Binding Command}"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
public ObservableCollection<string> col { get; set; }
public ICommand Command => _Command = _Command ?? new DelegateCommand<object>(e => cmd(e));
private ICommand _Command;
public void cmd (object e)
{
MessageBox.Show("Clicked");
}
public ViewModelCustom()
{
col = new ObservableCollection<string>();
col.Add("a");
col.Add("b");
col.Add("C");
}
谢谢
答案 0 :(得分:0)
一种方法是在ViewModel中创建属性并跟踪set方法而不是命令中的更改
public T SelectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
// User selected another element here, do what you want
}
}