相关疑难解决方法(0)

使用MVVM从WPF ListView项目中触发双击事件

在使用MVVM的WPF应用程序中,我有一个带有listview项的usercontrol.在运行时,它将使用数据绑定来用列表视图填充对象集合.

将双击事件附加到列表视图中的项目的正确方法是什么,以便在列表视图中的项目被双击时,视图模型中的相应事件被触发并且引用了单击的项目?

如何以干净的MVVM方式完成,即视图中没有代码?

wpf mvvm

100
推荐指数
5
解决办法
8万
查看次数

双击ListBox项以打开浏览器

ListBox在我的wpf窗口中绑定了一个ObervableCollection.如果有人点击了某个元素ListBox(就像链接一样),我想打开浏览器.谁能告诉我怎么做?我发现了listboxviews的一些东西,它只是以这种方式工作还是有一种方法只是使用ListBox

你的

塞巴斯蒂安

wpf binding listbox listboxitem

41
推荐指数
4
解决办法
4万
查看次数

WPF:如何使用MVVM将命令绑定到ListBoxItem?

我刚开始学习MVVM.我通过遵循这个MVVM教程从头开始制作应用程序(我强烈推荐给所有MVVM初学者).基本上,我到目前为止创建的是一些文本框,其中用户添加他或她的数据,一个按钮来保存该数据,随后使用所有条目填充ListBox.

这就是我陷入困境的地方:我希望能够双击ListBoxItem并触发我创建并添加到ViewModel的命令.我不知道如何完成XAML方面,即我不知道如何将该命令绑定到ListBox(Item).

这是XAML:

...
<ListBox 
    Name="EntriesListBox" 
    Width="228" 
    Height="208" 
    Margin="138,12,0,0" 
    HorizontalAlignment="Left" 
    VerticalAlignment="Top" 
    ItemsSource="{Binding Entries}" />
...
Run Code Online (Sandbox Code Playgroud)

这是ViewModel:

public class MainWindowViewModel : DependencyObject
{
    ...
    public IEntriesProvider Entries
    {
        get { return entries; }
    }

    private IEntriesProvider entries;
    public OpenEntryCommand OpenEntryCmd { get; set; }

    public MainWindowViewModel(IEntriesProvider source)
    {
        this.entries = source;
        ...
        this.OpenEntryCmd = new OpenEntryCommand(this);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

最后,这是我想在用户双击EntriesListBox中的项目后执行的OpenEntryCommand:

public class OpenEntryCommand : ICommand
{
    private MainWindowViewModel viewModel;

    public OpenEntryCommand(MainWindowViewModel viewModel)
    {
        this.viewModel = viewModel;
    }

    public event …
Run Code Online (Sandbox Code Playgroud)

c# wpf binding mvvm commandbinding

26
推荐指数
3
解决办法
7万
查看次数

标签 统计

wpf ×3

binding ×2

mvvm ×2

c# ×1

commandbinding ×1

listbox ×1

listboxitem ×1