C# 除非选中,否则数据绑定文本框不会更新
我有一个静态的单例类,其属性用于将文本框数据绑定到C# 除非选中,否则数据绑定文本框不会更新,c#,wpf,data-binding,C#,Wpf,Data Binding,我有一个静态的单例类,其属性用于将文本框数据绑定到 using System.ComponentModel; namespace Masca { public class logged : INotifyPropertyChanged { public static logged instance = new logged(); public static logged Instance { get
using System.ComponentModel;
namespace Masca
{
public class logged : INotifyPropertyChanged
{
public static logged instance = new logged();
public static logged Instance
{
get { return instance; }
}
private string alisa;
public string aliasname
{
get { return alisa; }
set
{
alisa = value;
RaisePropertyChanged("aliasname");
}
}
private string mail;
public string emailadd
{
get { return mail; }
set
{
mail = value;
RaisePropertyChanged("emailadd");
}
}
private void RaisePropertyChanged(string prop)
{
if (PropertyChanged != null)
{
PropertyChanged (this, new PropertyChangedEventArgs(prop));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
}
这是属性访问方法:
loggedin.Instance.emailadd = "email.text";
这是我放置在我希望访问属性的所有其他页面的初始化组件中的datacontext:
DataContext = loggedin.Instance;
这是绑定文本框的XAML代码
<TextBox x:Name="email" Text="{Binding emailadd}" Height="19" VerticalAlignment="Top" HorizontalAlignment="Left" Width="211" FontSize="11" Margin="134,417,0,0"/>
<TextBox x:Name="mail" Text="{Binding emailadd}" Height="19" VerticalAlignment="Top" HorizontalAlignment="Left" Width="211" FontSize="11" Margin="134,435,0,0"/>
问题是,如果我在email.text中键入某些内容,则单击mail.text后,mail.text将只反映email.text中的内容
非常感谢您的帮助。尝试设置
UpdateSouceTrigger
:
<TextBox x:Name="email" Text="{Binding emailadd,
UpdateSourceTrigger=PropertyChanged,
Mode=TwoWay}" />
请注意,
TextBox.Text
的UpdateSourceTrigger
的默认值是LostFocus
,而对于许多其他属性,它是PropertyChanged
尝试设置UpdateSourceTrigger
:
<TextBox x:Name="email" Text="{Binding emailadd,
UpdateSourceTrigger=PropertyChanged,
Mode=TwoWay}" />
请注意,
TextBox.Text
的UpdateSourceTrigger
的默认值是LostFocus
,而对于许多其他属性,它是PropertyChanged
,如果您试图为每个按键笔划触发绑定,则需要设置UpdateSourceTrigger
<TextBox Name="itemNameTextBox"
Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}" />
这个答案描述了更多的场景(例如,过滤按下的键)
如果您试图为每个按键笔划触发绑定,则需要设置
更新资源触发器
<TextBox Name="itemNameTextBox"
Text="{Binding Path=ItemName, UpdateSourceTrigger=PropertyChanged}" />
这个答案描述了更多的场景(例如,过滤按下的键)
想想看,我花了一上午的时间把我的项目翻了个底朝天,想弄明白这一点。。。谢谢金。想想我花了一上午的时间把我的项目翻了个底朝天想弄明白。。。谢谢你,国王。