如何检查列表视图中的复选框是否已选中? 如果我检查一行,预算会减少。如果我取消选中该行,则预算会增加。 我知道这是错的,但我不知道该怎么做。
private void CheckBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
long g;
foreach(Player item in lv_player.Items)
{
g = Convert.ToInt64(item.Value);
if (item.IsChecked == false)
{
budget += g;
Team.Add(item);
}
else
{
budget -= g;
Team.Remove(item);
}
lab_budget.Content = budget;
}
}
XAML
<ListView Name="lv_player" Grid.Column="0" HorizontalAlignment="Left" Height="234" Margin="10,10,0,0" VerticalAlignment="Top"
ItemsSource="{Binding}" SelectionMode="Multiple" Width="557">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Selector.SelectionChanged="CheckBox_SelectionChanged" ToggleButton.Unchecked="CheckBox_Unchecked" Checked="CheckBox_Checked" IsChecked="{Binding Path=IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Name" Width="150" DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
</ListView>
班级球员 Class Player
答案 0 :(得分:0)
您已经在检查是否选中了复选框。您的问题只是代码中的一个简单错误。
变化:
if (item.IsChecked == false)
到
if (item.IsChecked)
item.IsChecked是一个bool Property。如果选中(选中)复选框,则该属性将为&#34; true&#34;否则为&#34; false&#34;。
尽量避免使用&#34; == false&#34;,因为它是冗余代码。 Here is a topic on that.
在C#中,布尔值的命名方式是英文可读,而不使用等号运算符。