我使用Caliburn.Micro和WPF。 View的名称是:NewPlayView和ViewModel的名称是:NewPlayViewModel。
我有两个文本框,我希望通过更改textbox1的值,textbox2的值相应的各种。例如,如果我在textbox1中放置10,则textbox2将显示在20(10 * 2)中。
<TextBox Height="22" HorizontalAlignment="Left" x:Name="textbox1"/>
<TextBox Height="22" HorizontalAlignment="Left" x:Name="textbox2"/>
我能做到这一点?谢谢
答案 0 :(得分:2)
您要么在NewPlayViewModel
模型中创建2个属性,请说Value1
和Value2
,然后相应地绑定它们:
<TextBox Height="22" HorizontalAlignment="Left" x:Name="textbox1" Text="{Binding Path=Value1}"/>
<TextBox Height="22" HorizontalAlignment="Left" x:Name="textbox2" Text="{Binding Path=Value2}"/>
当Value1
更改时,您重新计算Value2
(反之亦然)和notify用户界面,两个值都已更改
或者您只保留一个属性,例如Value
,创建自定义IValueConverter
,使用您的算法实现Convert
和ConvertBack
方法并将其绑定为:< / p>
<TextBox Height="22" HorizontalAlignment="Left" x:Name="textbox1" Text="{Binding Path=Value}"/>
<TextBox Height="22" HorizontalAlignment="Left" x:Name="textbox2" Text="{Binding Path=Value, Converter={StaticResource MyValueConverter}}"/>