我想要一个文本框,它将始终在绑定上应用Converter。这种方式我不需要指定转换器,样式将已经包含转换器使用。样式绑定选项
这是我已经尝试过:
我有一个绑定查看视图模型。我使用视图模型的属性覆盖此视图中文本框的datacontext。它可以让我用一个通用的风格对我的文本框中
我有以下形式:
<Style x:Key="DateTimeTextBox" TargetType="TextBox">
<Setter Property="ToolTipService.ShowDuration" Value ="40000"/>
<Setter Property="Text" Value ="{Binding Path=.,Converter={StaticResource myConverter},UpdateSourceTrigger=PropertyChanged}"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="Unknown date format"/>
</Trigger>
</Style.Triggers>
</Style>
在我想有绑定在porperty DateTimeValueToBind而不是整个视图下面的文本框的观点型号:
<TextBox Style="{StaticResource DateTimeTextBox}" DataContext="{Binding DateTimeValueToBind}"/>
酒店DateTimeValueToBind在文本框不过它不再束缚正常显示(当我修改它,视图模型属性没有改变)
我试图在绑定选项中添加Mode = TwoWay,但它没有改变任何东西。
可以解释为什么DateTimeValueToBind属性在此上下文中不再绑定?
预先感谢
你是什么意思与“不再限制; viewmodel属性没有改变”?如果您修改了DataContext,那么CLR属性需要提出,否则UI将保存对旧视图模型的引用。如果您正确地提出DataTimeValueToBind,它应该自动重新显示Text属性。通过将PresentationTraceSources.TraceLevel = High添加到绑定标记中,您可以更好地了解绑定的工作方式。 – dowhilefor 2012-02-13 13:14:20
@dowhilefor:我不修改datacontext实例,我只是想将绑定委托给文本框,以便在我的样式(数据转换器)中为此上下文使用一些通用绑定选项。我可以简单地绑定在Text属性上,但在这种情况下,我总是需要指定转换器以及我想将转换过程放入样式中。 – Guillaume 2012-02-13 13:26:41