选中复选框或不是C#WPF

时间:2017-11-13 15:15:44

标签: c# wpf listview checkbox

如何检查列表视图中的复选框是否已选中? 如果我检查一行,预算会减少。如果我取消选中该行,则预算会增加。 我知道这是错的,但我不知道该怎么做。

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

1 个答案:

答案 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#中,布尔值的命名方式是英文可读,而不使用等号运算符。