0
我有一个ListView
,现在打开SelectedItem
Popup。 我想要的是,如果用户决定从列表中删除一个项目,他可以单击按钮,它会被删除 - 现在按钮确实会触发,但是如何告诉虚拟机中的按钮要删除的项目 - 没有“的SelectedItem”? PE的UWP ListView按钮MVVM绑定
<ListView
SelectedItem="{Binding...}"
x:Name="lv">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding...}"/>
<Button Command="{Binding ElementName=lv,Path=DataContext.RemoveXCommand}" />
</Stackpanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
VM
public void RemoveXCommand()
{
foreach(var item in pseudo)
{
if(item.Name == ?????)
pseudo.Remove(item);
}
}
有什么办法呢,还是要删除弹出的开放,并执行它作为另一个按钮,这样我就可以使用的SelectedItem得到比较呢?
谢谢。
EDIT1:
感谢Fruchtzwerg我得到它的工作
public RelayCommand<string> RemoveXCommand{ get; private set; }
//... in then Constructor
RemoveXCommand = new RelayCommand<string>((s) => RemoveXCommandAction(s));
public void RemoveXCommand(object temp)
{
foreach(var item in pseudo)
{
if(item.Name == (string) temp)
pseudo.Remove(item);
}
}
如果我试试这个我在构造函数中得到一个错误“的转换,从方法到行动是不可能的),在'RemoveXCommand =新RelayCommand (RemoveXCommandAction)' –
这是因为'RelayCommand'没有实现参数。请看https://stackoverflow.com/questions/33003207/universal-windows-platform-commanding-with-parameters你需要修改'RelayCommand'通过将对象参数添加到构造函数中的动作 – Fruchtzwerg
所以我必须使用ICommand切换RelayCommand,并且如何在构造函数中添加参数? –