0

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

我能做什么?谢谢

4

1 回答 1

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(反之亦然)并通知UI 两个值都已更改

或者你只保留一个属性,例如Value,创建自定义IValueConverter,用你的算法实现这两个ConvertConvertBack方法,然后像这样绑定它:

<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}}"/>
于 2013-06-06T19:14:27.060 回答