c# - 同时写入两个文本框
问题描述
在我的 WPF 应用程序中,我有两个文本框,我正在寻找以下内容:
我希望,如果用户textbox1
在应用程序上写一些东西,会将相同的值放入textbox2
,
<TextBox x:Name="textbox1"/>
<TextBox x:Name="textbox2"/>
有没有一种优雅的方式来做到这一点?
解决方案
以下将起作用:
<TextBox x:Name="textbox1" />
<TextBox x:Name="textbox2" Text="{Binding ElementName=textbox1, Path=Text}"/>
现在它所做的就是将 的属性Text
绑定到的属性。您所做的每一项更改都会自动反映在.textbox2
Text
textbox1
textbox1
textbox2
编辑:实际要求
根据您的评论,这可能是您想要做的解决方案:
<TextBox x:Name="textbox1" Text="{Binding TheText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBox x:Name="textbox2" Text="{Binding TheText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
并添加这个 C# 类:
public class MySimpleViewModel : INotifyPropertyChanged
{
private string theString = String.Empty;
public string TheString
{
get => this.theString;
set
{
if(this.theString != value)
{
this.RaisePropertyChanged();
this.theString = value;
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
public virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
我没有展示的是如何将其MySimpleViewModel
与实际视图连接起来。但是,如果您对此有疑问,我当然也可以证明这一点。
希望能帮助到你。
推荐阅读
- sql - 如何计算 db2 中两个日期列之间的天数?如何更正此查询中的天数差异?
- java - 有没有办法使用 Selenium WebDriver 而不通知文档它是由 WebDriver 控制的?
- ruby - 使用哈希图测试订单
- c++ - 理解 char 变量计数的 C++ 问题
- javascript - 在 React 中使用常规函数未触发 onClick 操作
- sql - dml 的通用 sql 脚本
- postgresql - Postgres(错误:列“date_deadline”是日期类型,但表达式是文本类型)
- java - 在java中滚动两个骰子直到dice1比dice2大两倍
- r - 用 ggplot2::stat_ydensity 绘制横向密度
- python - 使用 nodejs 消费者降低命名管道 (fifo) 吞吐量