wpf中textbox的Text属性因为Style的绑定,导致输入的数值始终是原来的数值,是怎么回事

xaml:<projectInfo:HistoryTextBoxGrid.Row="1"Grid.Column="1"Margin="2"VerticalAlignmen... xaml:
<projectInfo:HistoryTextBox Grid.Row="1" Grid.Column="1"
Margin="2" VerticalAlignment="Center" x:Name="heightCtrl"
Text="{Binding Height, Converter={StaticResource ResourceKey=DoubleLengthConverter}, UpdateSourceTrigger=LostFocus}"
Style="{StaticResource CanDropDownTextBox}"
HistoryItemsSource="{x:Static control:CtpEnumHelper.LamHeightStrings}">
</projectInfo:HistoryTextBox>

<Style TargetType="{x:Type loc:HistoryTextBox}" x:Key="CanDropDownTextBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="loc:HistoryTextBox">
<Border>
<ComboBox IsEditable="True"
Text="{TemplateBinding Text}"
ItemsSource="{TemplateBinding HistoryItemsSource}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

public class HistoryTextBox : TextBox
{
//public void AddCurrTextToSource()
//{
// HistoryItemsSource.Add(base.Text);
//}

//HistoryItemsSource.
#region HistoryItemsSource DependencyProperty
public static readonly DependencyProperty HistoryItemsSourceProperty =
DependencyProperty.Register("HistoryItemsSource",typeof(object),typeof(HistoryTextBox),
new FrameworkPropertyMetadata()
{
BindsTwoWayByDefault = true,
DefaultUpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
//DefaultUpdateSourceTrigger = UpdateSourceTrigger.LostFocus
});

public IList<string> HistoryItemsSource
{
get { return GetValue(HistoryTextBox.HistoryItemsSourceProperty) as IList<string>; }
set { SetValue(HistoryTextBox.HistoryItemsSourceProperty, value); }
}
#endregion
}
展开
 我来答
暗部归夜c4
2017-05-02 · TA获得超过597个赞
知道小有建树答主
回答量:365
采纳率:65%
帮助的人:22.6万
展开全部
数据模型实现 IDataErrorInfo 接口,用正则验证即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式