Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 除非选中,否则数据绑定文本框不会更新_C#_Wpf_Data Binding - Fatal编程技术网

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}" />

这个答案描述了更多的场景(例如,过滤按下的键)

想想看,我花了一上午的时间把我的项目翻了个底朝天,想弄明白这一点。。。谢谢金。想想我花了一上午的时间把我的项目翻了个底朝天想弄明白。。。谢谢你,国王。