Visual Studio/WPF > Error: System.InvalidOperationException: '바인딩을 사용한 후에 변경할 수 없습니다. '

운영 환경
Windows 7 Pro (32bit)
Microsoft Visual Studio 2017 Community

h tp : /// s ぇ l. ldb㎉g. jp / archi s / 52334874. HTML
를 바탕으로 학습 중.
        private void ChangeUpdateSourceTrigger(TextBox textBox, string name) {
            Binding binding = BindingOperations.GetBinding(textBox1, TextBox.TextProperty);
            BindingOperations.SetBinding(textBox, TextBox.TextProperty,
                new Binding(name) {
                    Mode = BindingMode.TwoWay,
                    UpdateSourceTrigger = _myObject.UpdateSourceTrigger
                });
        }

의 부분에 있어서 GetBinding()한 binding을 사용하고 있지 않은 부분이 신경이 쓰였다.

사용하도록 해 보았다.
        private void ChangeUpdateSourceTrigger(TextBox textBox, string name)
        {
            // 1. original
            //Binding binding = BindingOperations.GetBinding(textBox1, TextBox.TextProperty);
            //BindingOperations.SetBinding(textBox, TextBox.TextProperty,
            //    new Binding(name)
            //    {
            //        Mode = BindingMode.TwoWay,
            //        UpdateSourceTrigger = _myObject.UpdateSourceTrigger
            //    });

            // 2. 変更
            Binding bnd = BindingOperations.GetBinding(textBox, TextBox.TextProperty);
            bnd.UpdateSourceTrigger = _myObject.UpdateSourceTrigger;
            BindingOperations.SetBinding(textBox, TextBox.TextProperty, bnd);
        }

실행하여 ComboBox를 변경하면 다음 오류가 발생합니다.



GetBinding () 한 변수를 사용하여 UpdateSourceTrigger를 변경할 수없는 것 같습니다.
그 때문에 new Binding() 하고 있다고 이해했다.

좋은 웹페이지 즐겨찾기