您需要設置一個IEnumerable<bool>
/IEnumerable<SomeClass>
,其中包含您的每個CheckBox
es的IsChecked
信息。像
public class CheckedItem
{
public CheckedItem() { }
public CheckedItem(string text, bool isChecked) : this()
{
this._text = text;
this._isChecked = isChecked;
}
private string _text;
public String Text;
{
get { return _text; }
set
{
if (_text == value)
return;
_text = value;
OnPropertyChanged("IsSelected");
}
}
private bool _isSelected;
public bool IsSelected;
{
get { return _isSelected; }
set
{
if (_isSelected == value)
return;
_isSelected = value;
OnPropertyChanged("IsSelected");
}
}
}
private ObservableCollection<CheckedItem> checkItemCollection =
new ObservableCollection<CheckedItem>();
public ObservableCollection<CheckedItem> CheckItemCollection
{
get { return checkItemCollection; }
set
{
if (checkItemCollection == value)
return;
checkItemCollection = value;
OnPropertyChanged("CheckItemCollection");
}
}
東西在XAML可以再使用
<GridView ItemsSource="{Binding Path=CheckedItemCollection,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
IsAsync=True}"
<GridView.Columns>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Content="{Binding Text}"
IsChecked="{Binding IsSelected,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
IsAsync=True}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridView.Columns>
</GridView>
此綁定GridView
這個沒有一個IDE做,所以你可能需要調整這讓它開始工作。
我希望這會有所幫助。
先生,那麼如何檢查某一行是否被選中或取消選中?即複選框的值是真還是假? – Jinesh
你可以像查找行一樣查看'CheckedItemCollection [someRowIndex] .IsChecked' ...集合應該保持您放置項目的順序。它的行索引可以通過UI進行更改,那麼您將不得不添加索引持有者到「SomeClass」類... – MoonKnight