IEnumerable <>이 데이터를 지연로드합니다. 콤보 박스의 ItemsSource를 IEnumerable로 설정하고 싶지만, 어쨌든 (게으른 로딩 시점을 제거하는) 모든 데이터를로드하고로드합니다.지연로드 wpf 콤보 상자 항목
Linq-To-SQL에서도 비슷한 이론 인 것처럼 보이고 모든 데이터를로드하므로이 스크립트를 사용해 보았습니다.
쉬운 방법이 있나요?
IEnumerable <>이 데이터를 지연로드합니다. 콤보 박스의 ItemsSource를 IEnumerable로 설정하고 싶지만, 어쨌든 (게으른 로딩 시점을 제거하는) 모든 데이터를로드하고로드합니다.지연로드 wpf 콤보 상자 항목
Linq-To-SQL에서도 비슷한 이론 인 것처럼 보이고 모든 데이터를로드하므로이 스크립트를 사용해 보았습니다.
쉬운 방법이 있나요?
WPF ComboBox가 ItemsSource에서 항목을 느리게로드하는 것을 지원하지 않는다고 생각합니다. 어쨌든 게으른로드가 필요한 이유는 무엇입니까? 게으른로드를 트리거하는시기는 언제입니까?
큰 목록에서 선택하기위한 것입니다. 나는 자동 콤보보다 더 완벽하다고 생각한다. 저는 텍스트에 바인딩하고, 필터를 적용하고, ItemsSource에 바인딩 된 속성의 첫 번째 x 결과를 반환 할 수 있음을 알고, 좀 더 일반적인 것을 기대했습니다. ListBox가 Bing 이미지 검색과 비슷한 것을 제공하기 위해 비슷한 것을 사용할 수 있다고 생각했습니다. –
컨트롤을 IEnumerable에 직접 바인딩하지 마십시오. 대신 ObservableCollection (처음에는 비어 있음)에 바인딩하십시오. 한편, 평소와 같이 IEnumerable에서 게으른 로딩을 수행하십시오 (콤보 상자 또는 기타 드롭 다운으로 트리거 됨). 데이터가로드되는 동안 또는 충분히있을 때 데이터를 가져 와서 해당 ObservableCollection에 항목을 추가하여 comboBox를 채 웁니다.
ComboBox의 ItemsSource를 ObservableCollection에 바인딩하십시오.
는 이제 IEnumerable을 게으른로드 데이터는이 번 각 항목이 추가되는 UI를 업데이트 할 것 ObservableCollection에 즉시foreach(Item i in myIEnumerable)
{
myObsCol.Add(i);
}
에 추가 할 때마다.
나는 똑같은 일을하려하고있다. 그러나 내가 조사한 것처럼 표준 바인딩을 combobox (ItemsSource 및 dataItem을 SelectedValue/SelectedItem에 콜렉션)에 사용하려면 자체 컨트롤을 작성해야합니다. Combobox는 Selector에서 상속되며 컬렉션을 ItemsSource 속성에 바인딩하고 SelectedValue/SelectedItem에 바인딩 된 속성 값을 변경하면 Selector는 자체 개인 메서드 인 FindItemWithValue (개체 값)를 호출합니다. 이 메서드는 바운드 컬렉션의 항목을 처음부터 동일한 값을 찾을 때까지 탐색합니다. 물론, 선택한 항목 앞에 모든 항목을로드하는 컬렉션을 만들 것입니다.
목록이있는 사용자 지정 클래스를 기꺼이 수행하려는 경우 INotifyPropertyChanged 인터페이스를 사용하여 컬렉션이 수정되었음을 알릴 수 있습니다. 또는 사용 ObservableCollection에로 이미되어 제안했다으로
참으로 콤보 상자의 ItemsSource - 바인딩에 IsAsync-속성을 설정하십시오 : 그 아무것도 변경되지 않으면
<ComboBox ItemsSource={Binding YourItemsSourceProperty, IsAsync=True}
SelectedItem={Binding YourSelectionProperty} />
을 이것 좀 봐 하나 : http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/3d343489-90c4-4bdc-8bd9-1046ec9daf76 아마도 IList를 사용해야 할 수도 있습니다.
또는 PriorityBinding을 사용하여 최종 목록이 완전히로드 될 때까지 일부 임시 데이터로 목록을 채울 수 있습니다.
IEnumerable 클래스에 이벤트를 만듭니다. OnDataChange는 DataSource를 다시 설정합니다. 그것이 귀하의 요구 사항에 부합한다면 – PostMan