在Silverlight中单击即可编辑

Ben*_*ins 5 c# silverlight wpf xaml

有没有办法在silverlight中进行"点击编辑"控制?我有一些项目将显示在树视图控件中,我希望标签可以直接在树视图中编辑.

有人知道怎么做吗?

mar*_*kti 9

实际上很容易.我用这种交换机制实现了许多形式.

您可以使用Converter执行此操作,并对绑定到TreeView的实体上存在的IsEditable属性执行简单的BooleanToVisibility转换.在TreeView ItemTemplate中,只需绑定TextBlock,只要IsEditable属性为true,它就会被折叠,并且当IsEditable属性为false时,它会以一种方式绑定TextBox(反之亦然).

如果要构建自定义ClickToEdit控件,则需要执行以下操作:

  1. 创建一个继承自ContentControl的类
  2. 公开DataTemplate类型的新依赖项属性:一个名为EditableTemplate.
  3. 在OnApplyTemplate中添加MouseLeftButtonUp事件处理程序以侦听单击.
  4. 将活动内容模板更改为Click事件上的EditableTemplate.
  5. 当控件失去焦点时,请更改模板.

现在在TreeView中使用自定义控件:

  1. 覆盖TreeView的ItemTemplate
  2. 将自定义ClickToEdit控件放在那里

实现自定义控件将允许您(或其他开发人员)轻松指定他们想要用作内容编辑器的控件.例如,他们可以指定NumericUpDown或DateTimePicker而不是仅使用TextBox.

在Silverlight 3中查看DataForm.它具有类似的功能,但是可编辑与只读的切换不是通过单击完成的.