2011-01-07 9 views
1

wpf mvvm 응용 프로그램을 실행 중입니다. 내 견해 중 하나에서 하나의 열이 콤보 박스 인 목록 상자가 있습니다. 나는 모든 것이 효과가 있다고 생각했지만 ... 나는 여기서 끝났다.목록보기 내의 WPF 콤보 상자

한 행에서 콤보 상자의 값을 선택하면 모든 행이 변경됩니다. 나는 많은 것을 시도했고 나는 붙어 있었다. 나는 이것에 대해 긍정적 인 아니에요

<ListView ItemsSource="{Binding Path=Properties.OutputGroups, Mode=TwoWay}"> 
       <ListView.View> 
        <GridView > 
         <GridViewColumn Header="Output" > 
          <GridViewColumn.CellTemplate> 
           <DataTemplate> 
            <ComboBox ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}, Path=DataContext.Outputs}" SelectedValue="{Binding Path=Obj.OutputID, Mode=TwoWay}" IsSynchronizedWithCurrentItem="False" DisplayMemberPath="DisplayName" SelectedValuePath="ID" /> 
           </DataTemplate> 
          </GridViewColumn.CellTemplate> 
         </GridViewColumn> 
         <GridViewColumn Header="Duration"> 
          <GridViewColumn.CellTemplate> 
           <DataTemplate> 
            <TextBox Text="{Binding Path=Obj.Duration}" BorderThickness="0" /> 
           </DataTemplate> 
          </GridViewColumn.CellTemplate> 
         </GridViewColumn> 
         <GridViewColumn Header="State" > 
          <GridViewColumn.CellTemplate> 
           <DataTemplate> 
            <CheckBox IsChecked="{Binding Path=Obj.State}" /> 
           </DataTemplate> 
          </GridViewColumn.CellTemplate> 
         </GridViewColumn> 
        </GridView> 
       </ListView.View> 
      </ListView> 
+0

모델을 게시하십시오. 내 생각 엔 각 콤보 항목이 동일한 객체 인스턴스를 가리키는 것입니다. – Zamboni

+0

나는 소원한다. 그러나 그것은 모든 행에서 변경되는 콤보 박스가있는 첫 번째 열일뿐입니다. 다른 열은 괜찮습니다. 나는 또한 debuged하고 setter 사실 모든 개체에 대한 호출을 확인하십시오. 또한 해시 코드가 다르다는 것을 확인했습니다. – Furnes

답변

0

, 그래서 나는이 정확하지 않은 경우 사과,하지만 난 MSDN here에 읽은 내용에 따라, 나는 그것이해야 할 것 같아요 : 여기

내 XAML의 "isSynchronizedWithCurrentItem"속성을 사용합니다. 이 속성을 "true"로 전환하여 문제가 해결되는지 확인하십시오.

내가 말했듯이 문제가있는 곳이 긍정적이지는 않지만 현재 데이터와 현재 항목이 동기화되도록하려는 것 같습니다. 따라서 그 속성이 나에게 깃발을 던지고있는 이유는 무엇입니까? .

정말 도움이 되길 바랍니다. (그리고 정말로 그렇지 않다면 사과드립니다.)

+0

msdn 페이지를 읽으면 "다음 예제는 두 ListBox 컨트롤을 동일한 ItemsSource에 바인딩합니다."IsSynchronizedWithCurrentItem이 true로 설정되어 있기 때문에 각 ListBox에서 선택한 항목은 항상 두 컨트롤에서 동일합니다. " 이 내용을 올바르게 읽으면 정확히 지금과 똑같은 동작을합니다. 그러므로 거짓으로 설정하는 것이 옳다. – Furnes

+0

Nice try though though :) – Furnes

+0

@Furnes - 죄송합니다. 어둠 속에서 한 발 맞았지만 그럼에도 불구하고 한 발 맞았습니다. 나는 내가 다른 것을 찾을 수 있는지 계속 찾고있을 것이다. 이것에 도움이되지 않는 것을 다시 미안하다! – AmbiguousX