绑定两个文本框使用caliburn.micro c#wpf保持同步

时间:2013-06-06 18:46:52

标签: c# wpf binding textbox caliburn.micro

我使用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"/>

我能做到这一点?谢谢

1 个答案:

答案 0 :(得分:2)

您要么在NewPlayViewModel模型中创建2个属性,请说Value1Value2,然后相应地绑定它们:

<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,使用您的算法实现ConvertConvertBack方法并将其绑定为:< / 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}}"/>