2011-11-07 3 views
3

저는 wpf에서 새롭고 최근에 열거 나 닫은 항목을 생성하기 위해 목록 상자를 사용할 계획입니다. 파일을 열 때마다 listbox 항목 유형의 리소스 사전에 영구적으로 추가됩니다.프로그래밍 방식으로 리소스 사전에서 항목 제거

반면에 목록 상자 항목 외에도 링크를 제거하는 버튼이 있습니다.

이것이 가능합니까?

답변

6

ResourceDictionary는 IDictionary입니다. indexer을 사용하여 항목을 추가/무시할 수 있습니다.

myResourceDictionary["somekey"] = someObject;

그리고 당신은 Add()Remove() 방법을 사용할 수 있습니다.

귀하의 시나리오에서 대신 ObservableCollection을 사용하고 목록 상자에 bind을 사용하는 것이 좋습니다.

+0

일을 ObservableCollection에 바인딩을 위해 : 즉, WPF의 방법 결국 – stijn

+0

병합 된 사전으로 선언 된 ResourceDictionary에 항목을 추가 할 수 있습니까? 원본 속성 집합은 무엇입니까? – Grigory

0

이의 답변을 bitbonk뿐만 아니라, 실제로 가능하며,이 말 것 :

당신은 아마 ObservableCollectionListBoxItems 충전을하고 싶지 않습니다. ListBoxItem은 WPF가 렌더링을 위해 사용하는 클래스이며 일반적으로 직접 만들지는 않습니다. 데이터 소스를 (예를 들어) FileInfo 개체의 컬렉션으로 만들면 데이터 템플릿을 사용하여 목록에있는 항목을 원하는대로 표시 할 수 있습니다. 또한 코드를 작성하지 않아도 표시 목적으로 데이터 오브젝트를 별도의 클래스로 변환 할 필요가 없다는 이점이 있습니다.

(당신은 가능성이 FileInfo보다는 자신의 데이터/모델 유형을 사용하는 것입니다,하지만 난 하나를 제안하는 솔루션에 대해 충분히 알지 못한다.)

관련 문제