ListView
두 개가 각각 내 ViewModel의 특정 컬렉션에 바인딩되어 있고 전적으로 하나의 항목 만 선택할 수 있기를 원합니다.두 개의 ListView에서 하나의 항목 만 선택
각 ListView
은 ViewModel의 동일한 속성에 연결된 SelectedItem
속성을 가지고 있습니다.
내 문제는 다음과 같습니다. ListView
에서 항목을 선택한 다음 다른 ListView에서 다른 항목을 선택하면 첫 번째 항목이 선택된 상태로 유지됩니다. 코드 숨김으로이 작업을 수행 할 수 있지만 순수한 XAML 솔루션이 있는지 알고 싶습니다.
XAML :
<ListView SelectionMode="Single" ItemsSource="{Binding Path=MyList1}" SelectedItem="{Binding Path=MySelectedItem}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ListView SelectionMode="Single" ItemsSource="{Binding Path=MyList2}" SelectedItem="{Binding Path=MySelectedItem}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
변경되면'MySelectedItem' 속성이'INPC.PropertyChanged' 이벤트를 발생합니까? – dkozl
예,이 속성의 설정자에서 PropertyChanged 이벤트가 발생합니다. –
그리고'MySelectedItem'은'ListView' 둘 다에 대한 하나의 속성이고, MyList1과 MyList2와 같은 클래스에 정의되어 있고, ListView 중 하나를 선택할 때 setter가 호출된다는 것을 디버거에서 확인 했습니까? – dkozl