Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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#WPF双向复选框绑定未更新_C#_Wpf_Datagrid - Fatal编程技术网

C#WPF双向复选框绑定未更新

C#WPF双向复选框绑定未更新,c#,wpf,datagrid,C#,Wpf,Datagrid,堆栈溢出 从我的代码开始: XAML 这也没有解决问题。实现INotifyPropertyChanged,然后让您的属性引发事件以实现这一点 比如: public class MyData : INotifyPropertyChanged { private bool isChecked; public bool IsChecked { get { return isChecked; } set {

堆栈溢出

从我的代码开始:

XAML


这也没有解决问题。

实现
INotifyPropertyChanged
,然后让您的属性引发事件以实现这一点

比如:

public class MyData : INotifyPropertyChanged
{
    private bool isChecked;
    public bool IsChecked 
    { 
        get { return isChecked; } 
        set
        {
           if (isChecked != value)
           {
              isChecked = value;
              OnPropertyChanged("IsChecked");
           }
    }
    protected void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }
}

MyData
类中实现
INotifyPropertyChanged
怎么样?这是每个WPF员工都应该知道的最基本的事情。我所要做的就是添加:INotifyPropertyChanged到MyData。我将不得不阅读这篇文章,因为我对WPF和C#基本上还是新手。谢谢!!!:]嗯,你需要用你所有的财产做那些无聊的事情(否则你可能会有类似的问题),但你得到了要点:-)
public partial class MainWindow : Window
{
    ObservableCollection<MyData> MyItems = new ObservableCollection<MyData>();

    public MainWindow()
    {
        datGrid.ItemsSource = MyItems;
        MyItems.Add(new MyData { IsChecked = false, Username = "apetecca", FirstName = "Anthony", LastName = "Petecca", Email = "apetecca@email.com"});
        MyItems.Add(new MyData { IsChecked = true, Username = "jhalls", FirstName = "Jake", LastName = "Halls", Email = "jhalls@email.com" });

    }

    public class MyData
    {
        public bool IsChecked { get; set; }
        public string Username { get; set; } 
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
    }

    private void headerCheckBox_Checked(object sender, RoutedEventArgs e)
    {
        foreach (var item in MyItems)
        {
            item.IsChecked = true;
        }
    }
public class MyData
{
    private bool _isChecked;
    public bool IsChecked
    {
        get { return _isChecked; }
        set 
        { 
            _isChecked = value;
            OnPropertyChanged("IsChecked");
        }
    }
    public string Username { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }

    private void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }

    public event PropertyChangedEventHandler PropertyChanged;
}
public class MyData : INotifyPropertyChanged
{
    private bool isChecked;
    public bool IsChecked 
    { 
        get { return isChecked; } 
        set
        {
           if (isChecked != value)
           {
              isChecked = value;
              OnPropertyChanged("IsChecked");
           }
    }
    protected void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }
}