【问题标题】:Click-to-edit in SilverlightSilverlight 中的点击编辑
【发布时间】:2009-05-06 21:14:10
【问题描述】:

有没有办法在 Silverlight 中制作“点击编辑”控件?我有一些物品 将显示在树视图控件中,我希望标签可以直接在树视图中编辑。

有人知道怎么做吗?

【问题讨论】:

标签: c# wpf silverlight xaml


【解决方案1】:

其实很简单。我已经用这种交换机制实现了许多表单。

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

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

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

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

  1. 为 TreeView 覆盖 ItemTemplate
  2. 将您的自定义 ClickToEdit 控件放入其中

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

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

【讨论】:

  • 当我在按钮单击时切换 ContentTemplate 时,您能告诉我如何将焦点设置在 EditableTemplate 的控件(文本框)上吗?
  • 我被第 N 5 步卡住了。这是我的代码stackoverflow.com/questions/28613473/…
猜你喜欢
  • 1970-01-01
  • 2015-07-16
  • 2017-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 2011-07-23
  • 2020-05-06
  • 2014-11-17
相关资源
最近更新 更多