Binding
をUWPの読み取り専用プロパティSelectedItems
に割り当てることはできません。
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>
あなたは、リストビューのSelectionChangedイベントを使用して考えがありますか?その外観から、それはselectionChangedイベントタスクのように見えます。そうでない場合は、デモサンプルアプリや何かコードやGIF、またはあなたが達成しようとしているもののYouTubeVidを詳しく教えてもらえますか? –