- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个名为 EnhancedTextBox
的自定义控件,它是一个具有 TextBox
和 Button
的 UserControl。对于消费者来说,我希望它看起来像一个文本框,所以我做了以下事情:
<UserControl.Template>
<ControlTemplate TargetType="textBoxes:EnhancedTextBox">
...
<TextBox Text="{TemplateBinding Text}"...
在 EnhancedTextBox 中我有
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof (String), typeof (EnhancedTextBox));
public String Text
{
get { return (String) GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
然而,当我如下使用它时:
<EnhancedTextBox Text="{Binding MyText, Mode=TwoWay, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}}" />
然后,MyText
永远不会更新,而且我检查了 EnhancedTextBox.Text
并且它是空的。我错过了什么?我一直盯着这个看,不知道出了什么问题。我什至认为这可能是因为我使用了相同的名称,因此创建了一个名为 Text1
的属性,但它不起作用....
另请注意,如果我使用常规 TextBox
,那么这一切都有效。所以,我相当确定问题出在 EnhancedTextBox
本身
最佳答案
看完我想通了this MSDN about TemplateBinding .具体来说,
A TemplateBinding is an optimized form of a Binding for template scenarios, analogous to a Binding constructed with {Binding RelativeSource={RelativeSource TemplatedParent}}.
因此,我决定明确地执行此操作...这将允许我设置 UpdateSourceTrigger
(仍然不确定为什么它不默认为 PropertyChanged
)
<TextBox Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Text, UpdateSourceTrigger=PropertyChanged}"....
而且,现在它正在运行。 TemplateBinding
甚至不公开这些属性....同样,不确定为什么
关于c# - TemplateBinding 不适用于文本框文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21030567/
我是 WPF 的新手,我正在努力寻找我正在尝试做的事情的解决方案,因为我仍然有点不确定我是否正确地做这件事。 我为按钮定义了以下样式
好的,所以我有一个包含以下资源的窗口
我有一个列表框,其项目模板是一个列表框。我正在尝试将内部列表框的“前景”属性设置为与主列表框的相同。这是失败的。以下是代码片段。在这里 Foreground="{TemplateBinding For
自定义控件(在 VS 2008 下编写)具有 SelectedColor 依赖属性,其控件模板包含以下内容: ... ... 除非将绑定(bind)替换为: ...
我有一个名为 EnhancedTextBox 的自定义控件,它是一个具有 TextBox 和 Button 的 UserControl。对于消费者来说,我希望它看起来像一个文本框,所以我做了以下事情:
我正在创建一个 WPF 自定义控件,一个 Button与 Image和 Text .我在控件中添加了两个依赖属性 ImagePath和 Text ,并且控件模板(在 Themes\Generic.xa
这 2 个绑定(bind)之间的区别是什么: 和 ? 最佳答案 TemplateBinding 并不完全相同。 MSDN 文档通常是
我正在尝试制作自己的控件版本,例如 TextBox ,我想向其中添加一些自定义 UI。我想从这个类继承,这样用户仍然可以像调用普通文本框一样调用我的特殊文本框。我有以下内容: // MySpecial
我只是在silverlight 中处理自定义控件,而在我的一生中,我无法让TemplateBindings 工作。有人可以给这个简化版本一次,看看我是否遗漏了什么。 所以我在 generic.xaml
想象一个名为 Testko 的控件,如下所示: public class Testko: Control { public static readonly Dependency
我是创建 UserControl 的新人,现在我正在尝试自定义 UserControl 模板,如下所示:
我正在创建 模板化控件 在我的通用 Windows 应用程序中。 问题是在 TemplateBinding不起作用。 似乎问题在于它是在 DataTemplate 中定义的。 . 这是Style并将
我想在 XAML 字典中的 Border 上使用 RoutedEvent。 RoutedEvent 来自模板所在的类,我该如何实现? ModernWindow.cs /// /// Gets fir
在我的 Silverlight 3 应用程序中,我创建了一个自定义工具提示,它会在鼠标悬停在饼图的一部分上时显示。显示的值通过 TemplateBinding 设置:
Polymer’s TemplateBinding library extends the capabilities of the HTML Template Element by enabling
目前,我正在开发一个简单的自定义按钮,它使用用户提供的图像作为按下和正常状态的背景。我有很多按钮,所以我决定编写一个自定义按钮并为按下和正常状态的图片实现两个属性。 这是我正在使用的代码 public
这就是我在 WPF 中重现这个问题的方式: 创建自定义控件: public class TestCustomControl : Control { static TestCustomControl()
我正在构建一个按钮样式,该样式依赖于将颜色画笔转换为较暗的阴影来创建阴影。在常规 XAML 中,我有一个转换器,而不是我在完美工作的绑定(bind)上使用的转换器: BorderBrush="{Bin
为什么下面的 XAML 给我一个 XamlParseException 和(无意义的)消息“表达式类型不是有效的样式值”。在运行时?
我正在 WPF 中制作自定义控件。我仍在学习 TemplateBinding 的详细信息(在自定义控件中大量使用)。 我注意到我似乎无法在 MulitBinding 内部使用 TemplateBind
我是一名优秀的程序员,十分优秀!