【发布时间】:2015-07-10 06:00:01
【问题描述】:
我有一个带有重复堆栈面板和子控件的 itemscontrol。每个堆栈面板都包含一个我希望可编辑的文本块。该项目实施了一个 MVVM 框架,这使得这变得困难。我认为最好的方法是在每个连接到 BooleanToVisibilityConverter 的堆栈面板中创建一个按钮。此转换器连接到文本块并反转为文本框。所以它显示了两者之一。问题是我无法实现这个解决方案。
如果我将可见性绑定到后端,那么这将导致显示所有文本块或非文本块。我现在的解决方案如下:
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<CheckBox x:Name="DisplayBox" IsChecked="False"/>
<TextBlock Visibility="{Binding ElementName=DisplayBox,
Path=IsChecked,
Converter={StaticResource BoolToVis}}">
<Run Text="{Binding Title}"/>
</TextBlock>
</StackPanel>
所以我的问题是: 有没有一种简单的方法来实现一个只有 XAML 绑定到每个控件的可编辑文本块?或者我是否需要实现一种将其连接到后端的方式。
【问题讨论】:
-
为什么不使用 TextBox,然后通过 IsReadOnly 属性打开/关闭编辑功能?这与 TextBlock 并不完全相同,但它非常简单。更改控件类型(即用于视图的 TextBlock 和用于编辑的 TextBox)并非易事:它是可行的,但不像使用相同的控件那么容易。
-
哈哈,这正是我现在正在尝试的!我有这样的东西:`
` 现在我需要弄清楚如何更改与布尔值相关的文本框的样式并更改复选框到按钮 -
@RolandMakkelie 到底是什么问题?如何根据
CheckBox放置2个可见的控件? -
我正在尝试制作一个文本块,或看起来像一个文本块的文本框,并通过单击使其成为可编辑的文本框。更改后的值会自动绑定到属性更改列表
-
@RolandMakkelie 你还需要解决方案还是对只读
TextBox很满意?