在WPF中具有MVVM的ListItem上单击鼠标双击
我想在双击任何列表项时显示对话框。但是程序的流程永远不会进入ShowTextCommand属性。我得到了名字的列表(这很好),但我无法得到对话框。这是我的XAML:在WPF中具有MVVM的ListItem上单击鼠标双击,wpf,xaml,mvvm,binding,command,Wpf,Xaml,Mvvm,Binding,Command,我想在双击任何列表项时显示对话框。但是程序的流程永远不会进入ShowTextCommand属性。我得到了名字的列表(这很好),但我无法得到对话框。这是我的XAML: <ListView ItemsSource="{Binding List}" > <ListView.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Na
<ListView ItemsSource="{Binding List}" >
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}">
<TextBlock.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding ShowTextCommand, UpdateSourceTrigger=PropertyChanged}"></MouseBinding>
</TextBlock.InputBindings>
</TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
以及视图模型
private ICommand command;
public ICommand ShowTextCommand
{
get
{
if (command == null)
command = new EnterTextCommand(this);
return command;
}
internal void EnterText()
{
MessageBox.Show("Event Success");
}
有人能帮忙吗 您的
数据模板
找不到命令
,请使用ElementName
绑定指定该命令的完整路径
<ListView ItemsSource="{Binding List}" x:Name="MainList">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}">
<TextBlock.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding DataContext.ShowTextCommand, UpdateSourceTrigger=PropertyChanged,ElementName=MainList}"></MouseBinding>
</TextBlock.InputBindings>
</TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ListView ItemsSource="{Binding List}" x:Name="MainList">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}">
<TextBlock.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding DataContext.ShowTextCommand, UpdateSourceTrigger=PropertyChanged,ElementName=MainList}"></MouseBinding>
</TextBlock.InputBindings>
</TextBlock>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>