2009-07-21 3 views
0

SubSonic 3에서 생성 한 IQueryable 결과를 WPF ComboBox 또는 DataGrid의 ItemsSource에 바인딩하면 선택한 항목을 다음과 같이 변경할 수 없습니다. ComboBox 또는 DataGrid를 여러 번 사용할 수 있습니다. SubSonic 3.0.0.3과 ActiveRecord를 사용하고 있습니다. 내 코드에서SubSonic 3 및 WPF ItemsSource (ComboBox, DataGrid) - 선택한 항목이 두 번 이상 업데이트되지 않습니다.

: 내 XAML에서

var foo = FooDB.Customer.All(); 
FooComboBox.ItemsSource = foo; 

:

<ComboBox DisplayMemberPath="CustomerName" Name="FooComboBox" /> 

단계 재현 :

  1. 응용 프로그램 실행

    다음은 예입니다. 참고 (처음에는) 내 ComboBox에서 선택된 항목이 없습니다.

  2. ComboBox를 클릭하십시오. 드롭 다운은 여러 고객 이름과 함께 나타납니다.
  3. 드롭 다운 메뉴에서 고객 이름 X를 선택하십시오. 드롭 다운이 사라지고 X가 선택됩니다.
  4. ComboBox를 다시 클릭하십시오. 드롭 다운이 나타납니다.
  5. 드롭 다운 메뉴에서 고객 이름 Y를 선택하십시오. 드롭 다운이 사라지지만 X는 계속 선택됩니다.

미리 감사드립니다.

+0

조금 더 자세히 : 나는 (고객 인스턴스를 가져 오거나 설정하는 하나의 속성을 포함하는) SubSonic 생성 된 고객 클래스를 래핑하는 간단한 클래스를 작성하여 컬렉션에 넣고 해당 컬렉션을 ItemsSource에 할당했습니다. ComboBox의 이 해킹으로 ComboBox가 예상대로 작동합니다. 하지만 왜? Items 클래스에 문제를 일으키는 Customer 클래스의 속성/메소드 중 하나입니까? (가능한가?) – sparks

답변

0

자신의 클래스 (생성 된 클래스 인스턴스를 가져 오거나 설정하는 하나의 속성 포함)로 SubSonic 생성 클래스를 래핑하고이를 컬렉션에서 사용하면 작동합니다.