gpt4 book ai didi

silverlight - 在自定义控件中使依赖属性绑定(bind)两种方式

转载 作者:行者123 更新时间:2023-12-04 03:08:39 24 4
gpt4 key购买 nike

我有以下自定义控件:

<TextBox Grid.Column="3" Text="{TemplateBinding SampleValue}" />

public static readonly DependencyProperty SampleValueProperty =
DependencyProperty.RegisterAttached("SampleValue", typeof(string), typeof(IdattFilterBox), new PropertyMetadata(null));

public string SampleValue
{
get { return GetValue(SampleValueProperty) as string; }
set { this.SetValue(SampleValueProperty, value); }
}

在我声明自定义控件的 UserControl 中,我有这样的 XAML:
<my:SampleBox SampleValue="{Binding SampleValue, Mode=TwoWay}" />

和 ViewModel 像这样:
public string SampleValue
{
get
{
return this.sampleValue;
}

set
{
this.sampleValue = value;
}
}

我不在乎 VM 上的 INotifyPropertyChanged(所以不要告诉我这件事 :))
现在它可以在文本框中显示文本,就像我在 VM 中设置的一样。但是当我修改此文本时 - 它不会冒泡回到 VM 中。

我该怎么办?我想我必须在自定义控件中编写一些代码?我应该处理 TextBox PART 并捕获 LostFocus 吗?或者它如何与 TemplateBinding 一起工作?

最佳答案

TemplateBindingOneWay .

如果你使用 Silverlight 4,你可以试试这个,

{Binding SampleValue, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}

关于silverlight - 在自定义控件中使依赖属性绑定(bind)两种方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com