두 개의 텍스트 상자가있는 눈금의 항목 템플릿 상수 인 ListView에 사전을 바인딩하려고합니다. 이상 적으로 ListView에 표시된 KeyValuePair의 키와 값을 모두 수정할 수 있어야합니다. 그게 가능하니?ListView TwoWay 바인딩 - 사전 가능?
답변
당신이 찾고있는 것은 ObservableCollection<T>
과 유사하지만 사전입니다. 인터넷 검색의 비트는 Dr. WPF on building an ObservableDictionary
에서 다음과 발견 :
장단점을
물론, 관찰 사전을 사용하는 이점은, 사전에 데이터 바인딩 된 컨트롤의 ItemsSource 역할을 할 수 있다는 것입니다 및 다른 사전에 액세스하는 것과 같은 방식으로 코드에서 사전에 계속 액세스 할 수 있습니다. 그것은 진정으로 색인 된 객체 사전입니다. 사전을 관찰 가능하게 만드는 아이디어에는 고유 한 한계가 있습니다. 사전은 속도를 위해 만들어졌습니다. 관찰 가능한 컬렉션의 동작을 사전에 바인딩하여 프레임 워크가 바인딩 할 수 있으면 오버 헤드가 추가됩니다.
또한 사전은 동일한 이름의 별도 속성을 통해
Values
및Keys
모음을 노출합니다. 이러한 컬렉션은 각각Dictionary<TKey, TValue>.ValueCollection
및Dictionary<TKey, TValue>.KeyCollection
유형입니다. 이러한 CLR 정의 모음은 관찰 할 수 없습니다. 따라서 Values 컬렉션이나 Keys 컬렉션에 직접 바인딩 할 수없고 동적 컬렉션 변경 알림을받을 것으로 기대할 수 있습니다. 대신 관측 가능 사전에 직접 바인딩해야합니다.
지금, 당신은 당신이 어떻게 든 이동 귀하의 항목으로 사전을 설득 할 필요가 같은 키를 업데이트에 문제로 실행할 수 있습니다. Dr. WPF의 ObservableDictionary
을 대신 사용하고 KeyedCollection
을 보조 저장소로 사용하는 것이 좋습니다. 그런 식으로 Key는 Item 자체에서 파생되며 업데이트는 ObservableDictionary
의 객체를 자동으로 이동합니다.
KeyValuePair 구현을 보면 읽기 전용 속성으로 키와 값이 모두있는 구조체이므로이 경우 TwoWay 바인딩을 만들 수 없다고 생각됩니다.
키를 변경할 때 사전 추가 및 항목 제거를 처리하는 INotifyPropertyChange를 상속하는 클래스를 만들거나 값을 변경할 때만 값을 변경하면 가능합니다.
- 1. TwoWay UserControl과 바인딩
- 2. Silverlight DataGrid Twoway 바인딩
- 3. WPF TwoWay 데이터 바인딩 제한
- 4. WPF TwoWay ObservableCollection에 일부 요소 바인딩
- 5. 실버 4 {바인딩} 일반적인 사전
- 6. Silverlight Twoway 바인딩 및 롤백 변경 - 방법?
- 7. ValidationRules 사용시 WPF TexBox TwoWay 바인딩 문제
- 8. ListView에 사전 바인딩 WPF
- 9. 큰 ListView 이미지에 캐시 가능
- 10. ListView 데이터 바인딩 동작
- 11. WPF ListView 데이터 바인딩?
- 12. ASP.NET - ListView 바인딩 - 설명
- 13. WPF ListView 바인딩 + 오류
- 14. {함수에 바인딩 가능/
- 15. 아코디언 창에 바인딩 사전
- 16. 사전 바인딩 모델
- 17. ListView 내에서 TextBox에 바인딩 하시겠습니까?
- 18. Linq-to-SQL : 바인딩 ListView
- 19. WPF LIstView 열 머리글에 바인딩
- 20. C# 개체를 ListView/컨트롤에 바인딩
- 21. ListView에 항목이있는 변환기가있는 ListView 바인딩
- 22. WPF에 개체 목록 바인딩 ListView
- 23. textBox.Text를 설정해도 바인딩 된 twoway 속성이 업데이트되지 않습니까?
- 24. WPF의 둘 이상의 목록 상자에서 ListBox SelectedItem에 TwoWay 바인딩
- 25. jQuery 조기 바인딩 기능 가능?
- 26. TwoWay 바인딩을 사용한 DependencyProperty
- 27. TwoWay With ItemsControl
- 28. Twoway multibinding 유효성 확인
- 29. 읽기 전용 속성이있는 TwoWay MultiBinding
- 30. WPF 바인딩 사전 <string, list <string> to listView, ListBox 어떻게?
예,하지만 저는 ViewModel과 같은 intemiteite 클래스가 없으면이를 수행 할 수 없습니다. 사전에 직접 바인딩하는 것이 가장 중요합니까? – angrifel
좋습니다. 사전은 내 응용 프로그램의 설정 등을 보유하기로되어 있습니다. – Maciek