Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Lỗi Bindding Sử Dụng INotifyPropertyChanged Trong WPF?

16:28 18-06-2017 1.110 lượt xem 4 bình luận 14:12 26-06-2017

Hơi khó hiểu một chút. Mong rằng anh em có thể hiểu..

Ví dụ: Mình có 9 button đặt content là từ 1 -> 9.  9 Button này chung một sự kiện Click là Button_Click.

Mình có Property là "textKey". Mỗi lần 9 button kia ấn, mình sẽ dùng Sender để lấy ra Content của button vừa ấn vào. :)

Mình có một txbScreen. Và txbScreen này sẽ Bindding trực tiếp từ "textKey"... Ok, nó hoạt động ngon.

Vấn đề của mình là. Mình có thêm một Button (Gọi là Reset đi). Mỗi lần ấn vào Button này, mình sẽ set lại "textKey" = null (Tất nhiên là set trực tiếp, không cần dùng sender).

Và thế là vấn đề phát sinh. Cái txbScreen nó không hề update trực tiếp cái "textKey" của mình, mà phải cần một thao tác nào đó nó mới bindding lên (Giống như Bindding trực tiếp Textbox sử dụng mode TwoWay, phải load Focus nó mới Bindding lên)

Mong anh em hiểu. Cảm ơn mọi người

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 21:28 25-06-2017
private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;
            textKey ="";



        }

Thành

private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;
            TextKey ="";



        }

Bạn quên ghi hoa

MIKEN đã bình luận 08:15 25-06-2017

@k9

COde day a:

    public partial class MainWindow : Window, INotifyPropertyChanged
    {
        private string textKey;
        public string TextKey
        {
            get
            {
                return textKey;
            }

            set
            {
                textKey = value;
                OnPropertyChanged("TextKey");
            }
        }

        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = this;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button but = sender as Button;

            TextKey += but.Content.ToString();


        }



        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;
            textKey ="";



        }

 

K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 22:07 18-06-2017

xin cái code đi bạn ơi

Câu hỏi mới nhất