我在窗口上有一个文本框,其中显示了货币值。该文本框具有IsReadOnly属性与datacontext属性的绑定。如果文本框处于只读模式,则我希望将其中的文本格式化为货币值,并带有£符号和千位分隔符的逗号,但是如果处于编辑模式,则希望它是一个向上的数字。
StringFormat属性似乎不是一个选项,因为它是无条件的。Converter属性似乎是一个希望的候选者,但我需要将IsReadOnly属性作为ConverterParameter传递,而ConvereterParameter似乎不想绑定。
解决这个问题的正确方法是什么?
您可以TextBox.Text
基于触发器更改绑定,在这种情况下IsReadOnly=True
可以使用StringFormat
<TextBox ...>
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Text" Value="{Binding Path=MyDecimal}"/>
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="Text" Value="{Binding Path=MyDecimal, StringFormat=C2}"/>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句