서비스의 일부 옵션을 제시하고 사용자로부터 이러한 항목 중 일부를 선택해야하는 애플리케이션을 개발 중입니다. 이를 달성하기 위해, ListView를 SelectionMode = "Multiple"과 함께 사용하려고 시도했지만이 접근법에 몇 가지 문제점을 발견했습니다. 좌측 패널 (I "는 슬롯 '라고한다 여기에서) 사용자가 항목을 선택 위 그림 UWP 다중 선택을 처리하는 방법
는, 선택된 슬롯의 상세 우측 패널에 도시되어있다. 내 문제는 "처리 유형"필드 다루는 온다. 보시다시피, 슬롯에는 많은 핸들링 유형이있을 수 있습니다. ListView의 SelectedItems 속성을 내 ViewModel의 일부 속성에 양방향 바인딩 할 필요가 있지만 이는 불가능합니다 (그런데 MVVM 패턴을 따르고 있습니다). ViewModel에서 선택한 항목을 설정 한 다음 사용자가 내 ViewModel로 되돌릴 수 있었던 다른 선택 (또는 선택 취소)을 캡처하는 방법이 있습니다. 물론 깨끗한 쉬운 솔루션을 선호하지만,이 시점에서 어떤 제안도 인정 될 것입니다.
0
A
답변
0
UWP의 읽기 전용 속성 SelectedItems
에는 Binding
을 할당 할 수 없습니다.
wrokaround로 클래스에 IsSelected
속성을 정의 할 수 있습니다. 클래스는 INotifyPropertyChanged를 상속해야합니다.
클래스 코드 :
는public class Bundle : INotifyPropertyChanged
{
private string _name;
private bool _isSelected;
public string Name
{
get { return _name; }
set
{
_name = value;
RaisePropertyChanged("Name");
}
}
public bool IsSelected
{
get { return _isSelected; }
set
{
_isSelected = value;
RaisePropertyChanged("IsSelected");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
}
우리는 CheckBox
이 표시되지 않습니다 IsMultiSelectCheckBoxEnabled
false로 설정할 수 있습니다. 그런 다음 DataTemplate
에 CheckBox
컨트롤을 추가하면 IsChecked
속성을 IsSelected
에 바인딩 할 수 있습니다. 예를 들어
는 :
<ListView Name="MyListView" SelectionMode="Multiple" IsMultiSelectCheckBoxEnabled="False">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected,Mode=TwoWay}"></CheckBox>
<TextBlock Text="{Binding Name}" ></TextBlock>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
+0
이 방법을 사용하면 SelectionMode 및 IsMultiSelectCheckBoxEnabled 특성이 불필요한 것처럼 보이지만 꽤 잘 작동합니다. – Wacho
관련 문제
- 1. 다중 선택을 처리하는 Jquery
- 2. Django : 다중 선택 미국 상태 선택을 처리하는 가장 좋은 방법
- 3. UWP GridView를 클릭하여 선택을 지우십시오.
- 4. wxGrid에서 다중 선택을 해제하는 방법?
- 5. 다중 노드 선택을 활성화하는 방법?
- 6. UWP 앱에서 자석 (토런트) 링크를 처리하는 방법
- 7. 아이폰의 uicollectionview에서 단일 선택을 처리하는 방법
- 8. Gtk # 노트북 위젯에서 탭 선택을 처리하는 방법?
- 9. 스윙 페인트 프로그램 - 선택을 처리하는 방법?
- 10. 선택 행을 반환하는 선택을 처리하는 방법
- 11. 드롭 다운 (jquery mobile)에서 다중 선택을 처리하는 방법은 무엇입니까?
- 12. 조건별로 다중 선택을 확인했습니다.
- 13. 다중 패널 레이아웃을 처리하는 방법
- 14. 프로젝트의 다중 릴리스를 처리하는 방법
- 15. GridView가 wpf에서 다중 선택을 지원하는 방법
- 16. 라디오 그룹에서 다중 선택을 해제하는 방법 extjs
- 17. 다중 선택을 통해 JSON 객체를 전달하는 방법
- 18. 대화 단일 선택에 다중 선택을 변환하는 방법
- 19. 기존 IQueryable에 다중 선택을 추가하는 방법
- 20. 다중 선택을 클릭하여 표에 행을 추가하는 방법
- 21. FileDialog에서 파일 선택을 다중 선택하도록 제한하는 방법?
- 22. WinListener 8의 LongListSelector에서 다중 선택을 지원하는 방법
- 23. UWP/C# Sqlite에서 문자열로 Comboboxitem 선택을 저장하는 방법
- 24. 개체 당 복수 선택을 처리하는 가장 좋은 방법
- 25. xe : listView가 다중 선택을 방지합니다.
- 26. 다중 선택을 관리하는 라이브러리를 찾으십시오
- 27. 검도 그리드에서 다중 선택을 구현 angular2
- 28. Bltoolkit - 다중 데이터베이스의 ID를 처리하는 방법
- 29. 안드로이드에서 다중 계정 로그인을 처리하는 방법?
- 30. 다중 스레드 정리를 처리하는 가장 좋은 방법
은리스트 뷰의에서 selectionChanged 이벤트를 사용하여 생각 해 봤나? 보이는 것부터 보면 selectionChanged 이벤트 태스크처럼 보입니다. 그렇지 않다면 데모 샘플 앱이나 코드 또는 GIF 또는 YouTube에서 얻으려는 동영상에 대한 정교함을 제공하거나 제공 할 수 있습니까? –