2013-07-23 4 views
0

다음 질문이 있습니다. 내보기 모델에서 이름 및 값, 두 문자열 속성이있는 개체 목록이 있습니다. 내보기에서 목록을 콤보 상자에 바인딩하고 싶지만 특정 이름을 가진 요소 만 표시하려고합니다. 목록은 :목록의 특정 요소를 콤보 상자에 바인딩

이름 및이 & nbsp이 & nbsp이 & nbsp nbspValue
foo는 &이 & nbsp이 & nbsp이 & nbsp nbspaaa
바 &이 & nbsp이 & nbsp이 & nbsp nbspbbbb
foo는 &이 & nbsp이 & nbsp이 & nbsp nbspccc

내가 콤보 상자에 이름 foo는, AAA 및 CCC가있는 경우에만 요소를 표시 할

. 여기서 catch는 코드 숨김 또는 viewmodel이 아닌보기에서 필터를 수행하려고합니다.

ViewCode :

<ComboBox IsEditable="True" VerticalAlignment="Top" 
     HorizontalAlignment="Left" Width="150" Margin="60,60,0,0" 
     ItemsSource="{Binding Elements}" 
     SelectedValue="{Binding Value}" SelectedValuePath="Value" 
     DisplayMemberPath="Value" /> 

뷰 모델 번호 :

private List<CustomChartElement> elements; 
public List<CustomChartElement> Elements 
    { 
     get { return this.elements; } 
    } 
+0

관련 코드 및 XAML을 게시하십시오. 'CollectionView'를 사용하십시오. –

+0

@ HighCore. 내 코드는이 질문과 관련이 없습니다. – darkArk

+0

"StackOverflow 지침에 따라"해당 문제에 대한 최소한의 이해를 보여 주어야합니다 .... " 적어도 이미 시도한 것을 보여줄 필요가 있습니다. –

답변

0

당신은 단지 하나 대신에 당신이 노출 된 목록에 필터링을 수행하는 속성을 추가하고 결합 할 수있다.

여러 개의 콤보 박스가 있고 각기 다른 필터 논리에 따라 필터링 된 기본 목록의 하위 목록이 필요한 경우보기에서 모델의 각 목록을 자체 속성으로 구현하는 것에 대해 생각해야합니다. 기본 모델을 어지럽히 지 않기 위해 다른 목록을 노출하는 컨테이너 클래스 내에 모델을 캡슐화하는 것도 고려할 수 있습니다.

나는 Command Binding이라고하는 아이디어를 발견했다. Here is 매개 변수를 전달하는 예제입니다. 그것은 당신이 찾고 있던 것일 수도 있습니다.

ICommandSource가 필요하므로 여기 how to implement ICommandSource for Combobox에있는 기사를 참조하십시오.

+0

해당 목록은 동일한보기의 여러 콤보 상자에 바인드됩니다. – darkArk

+0

당신을 이해한다면, 바운드 컨트롤 중 하나에 대해서만 필터를 적용하고 다른 필터에는 필터를 적용하지 않으려 고합니다. 맞습니까? 필터링 된 Items가있는 두 번째 속성과 해당 항목을 바인딩하지 않고 바인딩하는 이유는 무엇입니까? – Marwie

+0

각 콤보 박스는 Name 속성을 기반으로 해당 목록의 하위 집합에 바인딩됩니다. – darkArk

관련 문제