2011-05-13 3 views
0

폼에 2 개의 컨트롤이 있습니다. 하나 numericUpDown (Silverlight Toolkit에서 제공) 및 간단한 직사각형입니다. 나는 numericUpDown 값을 가진 메시지 박스를 팝업 사각형의 MouseLeftButtonDownnumericUpDown ValueLanged after MouseLeftButtonDown

.

numericUpDown 값을 변경하기 위해 화살표를 사용하면 모든 것이 정상입니다. 그러나 값을 수동으로 (키보드로) 편집하고 직사각형을 클릭하면 이전의 numericUpDown 값이 표시됩니다. 직사각형을 클릭하면 새 값이 표시됩니다.

numericUpDown.ValueChanged 이벤트는 Rectangle.MouseLeftButtonDown 이벤트 후에 발생합니다.

Silverlight 버그입니까? 누구든지 그 해결 방법을 알고 있습니까?

내가 좋아하는 자신의 컨트롤을 만들 것을 제안 해결 방법으로

답변

0

(BTW 내 사각형 컨트롤이나 이벤트를 변경할 수 없습니다) : 당신이 컨트롤 표시 텍스트를 syncronize하는 방법 동기화를 사용할 수 있습니다 지금

public class MyNumericUpDown : NumericUpDown 
    { 
     private TextBox _textBox; 
     public void Sync() 
     { 
      ApplyValue(_textBox.Text); 
     } 
     public override void OnApplyTemplate() 
     { 
      base.OnApplyTemplate(); 
      _textBox = (TextBox)GetTemplateChild("Text"); 
     } 
    } 

을 Value 속성. 선언적으로 또는 코드 뒤에 XAML의 메서드를 호출 할 수 있습니다. 귀하의 경우 :

private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
     { 
      myNumericUpDown.Sync(); 
      MessageBox.Show(myNumericUpDown.Value.ToString()); 
     }