Wpf 用于将事件发送到viewmodel的Listbox项用户控件

Wpf 用于将事件发送到viewmodel的Listbox项用户控件,wpf,mvvm,Wpf,Mvvm,我创建了一个用户控件,它允许对列表框项进行内联编辑 它是一个文本块和一个文本框,它们相互重叠。双击listbox项时,TextBlock将隐藏,TextBox将变为可见,以便进行编辑 我的列表框绑定到viewmodel的ObservableCollection属性 问题 我不想: 1.捕捉编辑模式“开”,告诉ViewModel做一些事情,例如准备编辑 2.捕捉编辑模式“关闭”以告知ViewModel提交更改/编辑 我应该为此使用EventHandler,还是给我的用户控件一个ViewModel,

我创建了一个用户控件,它允许对列表框项进行内联编辑

它是一个文本块和一个文本框,它们相互重叠。双击listbox项时,TextBlock将隐藏,TextBox将变为可见,以便进行编辑

我的列表框绑定到viewmodel的ObservableCollection属性

问题

我不想:
1.捕捉编辑模式“开”,告诉ViewModel做一些事情,例如准备编辑
2.捕捉编辑模式“关闭”以告知ViewModel提交更改/编辑

我应该为此使用EventHandler,还是给我的用户控件一个ViewModel,然后通过消息发送所需的任务

如果我使用EventHandler,我需要将事件分配给所选listbox项的用户控件-我将如何做


谢谢阅读。

顺便说一句,不要隐藏文本块和显示文本框,试试这个解决方案

    <TextBox Text="Text" Width="100" Height="100">
        <TextBox.Style>
            <Style TargetType="TextBox">
                <Setter Property="Focusable" Value="False"/>
                <Style.Triggers>
                    <EventTrigger RoutedEvent="PreviewMouseDown">
                        <BeginStoryboard>
                            <Storyboard>
                                <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="Focusable">
                                    <DiscreteBooleanKeyFrame Value="True"/>
                                </BooleanAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </TextBox.Style>
    </TextBox>


感谢您采用了更简洁的方法。如何使文本框看起来/功能类似于文本块?现在它们都是可编辑的@迈克尔:有什么问题?如果您想要文本框,但外观不同,可以使用默认模板。