我們不能將Binding
分配到UWP中的只讀屬性SelectedItems
。
作爲一個工具,我們可以在類中定義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));
}
}
}
我們可以設置爲false,以使CheckBox
將不會顯示的IsMultiSelectCheckBoxEnabled
。然後我們可以在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>
你有沒有考慮過使用ListView控件的SelectionChanged事件?從外觀上看,它看起來像一個selectionChanged事件任務。如果沒有,請您詳細說明或提供一個演示樣本應用程序或代碼或GIF或YouTubeVid,試圖實現您的目標?它可以幫助我們提供更好的解決方案 –