2010-08-13 4 views
0

우선 Silverlight + MVVM이 처음입니다. 그래서 나는 너희들에게 시나리오를 설명하기 위해 최선을 다할 것이다.Silverlight 및 MVVM의 KeyDown 문제

완벽하게 작동하는 Silverlight 4 응용 프로그램에는 다음과 같은 AutoCompleteBox가 있습니다. 나는 AutoCompleteBox에서 특정 VendorID 값을 선택하면, 공급 업체 나머지 데이터가있는 gridview에로드해야

다음과 같이

<myControls:AutoCompleteBox Name="acbVendorID" MinimumPrefixLength="2" 
     ItemsSource="{Binding VendorCodes, Mode=TwoWay}" 
     SelectedItem="{Binding SelectedVendorCode, Mode=TwoWay}" 
     ValueMemberBinding="{Binding Value}" 
     cmds:AutoCompletePopulating.Command="{Binding VendorID_Populating}" 
     cmds:AutoCompletePopulating.CommandParameter="{Binding ElementName=acbVendorID}"> 

이제 내 요구 사항입니다. 이러한 이유로, 나는 다음과 같은 방법으로 내 뷰 모델에 SelectedVendorCode을 구현 한 :

private KeyValue selectedVendorCode; 
public KeyValue SelectedVendorCode 
{ 
    get { return selectedVendorCode; } 
    set 
    { 
     if (selectedVendorCode != value) 
     { 
      selectedVendorCode = value; 
      this.NotifyChanged("SelectedVendorCode"); 
      if (selectedVendorCode != null) 
      { 
       this.VendorDisplayCode = selectedVendorCode.Value; 
       OnVendorCodeSelected(); //Sets the vendor collection property bound to the GridView 
      } 
     } 
    } 
} 

이뿐만 아니라 잘 작동합니다. 사용자가 아래쪽 화살표를 사용하여 AutoCompleteBox의 항목을 탐색 할 때 문제가 발생합니다. 그리드보기의 데이터는 AutoCompleteBox의 선택된 항목이 변경 될 때 다시로드됩니다.

이 특정 기능을 차단하고 싶습니다. I 사용자가 AutoCompleteBox의 공급을 선택하고 프레스 I이 '는 KeyPressCommand는 케이이 link

에 언급 된 방법을 사용하여 달성하려고

입력시의 GridView 데이터 를 페치 할 아래 화살표 나 Enter 키를 사용할 때 t 화재가 발생합니다. 대부분의 다른 키는이 명령을 실행하는 것 같습니다.

나는 조금 혼란 스럽다. 당신에 의한 모든 입력은 정말 도움이 될 것입니다.

미리 감사드립니다.

~ 비 노드

답변

0

제프 윌콕스는이 작업을 수행하기 위해 post를 작성했습니다. 핵심은 새로운 ISelectionAdapter을 구현하고 ListBox에 적용하는 것입니다. 나는 이것을 과거에 해왔다.

+0

완벽하게 작동합니다! 감사! – Vinod