我创建了一个用户控件,允许对列表框项进行内联编辑。
它是一个TextBlock和一个TextBox在彼此之上。双击列表框项目时,TextBlock将被隐藏,TextBox可见,以便进行编辑。
我的列表框绑定到我的viewmodel的ObservableCollection属性。
问题
我不想:
1.捕捉编辑模式“打开”以告诉ViewModel执行某些操作,例如准备编辑
2.将编辑模式“关闭”以告知ViewModel提交更改/编辑。
我应该为此使用EventHandlers还是让我的用户控制一个ViewModel,然后通过Messaging发送所需的任务?
如果我使用EventHandlers,我需要将事件分配给选定的列表框项目的用户控件 - 我该怎么做?
感谢阅读。
答案 0 :(得分:0)
顺便说一下,不是隐藏文本块而是显示TextBox,试试这个解决方案
<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>