【问题标题】:WPF ListView item selection unchecks checkboxWPF ListView 项目选择取消选中复选框
【发布时间】:2011-07-02 06:45:56
【问题描述】:

我有这个代码:

        <ListView Grid.Row="0" Grid.Column="0" Margin="5" HorizontalAlignment="Stretch" Name="netcastListView" ItemsSource="{Binding NetcastList}">
            <ListView.View>
                <GridView>
                    <GridViewColumn Width="Auto">
                        <GridViewColumnHeader Content="Sync" />
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox IsChecked="{Binding IsSynced}" Command="{Binding Source={StaticResource mainViewModel}, Path=UpdateNetcastCommand}" CommandParameter="{Binding}" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Width="Auto">
                        <GridViewColumnHeader Content="Netcast" />
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding ShowTitle}" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>

当我在列表视图中选择一个项目时,它会取消选中渗入绑定的复选框。我怎样才能防止这种情况发生?

编辑/澄清: 我要防止的是选中项目时复选框受到影响。

【问题讨论】:

  • 命令参数的作用是什么??如果你把它去掉,行为会变得更好吗?
  • 当复选框被选中/取消选中时,它会更新一个 xml 配置文件,然后启动一些进程。它将“Netcast”对象传递给命令。 (我正在更新的网络广播)
  • 我遗漏了一些重要的事情。我有一个 CommandBehaviorBinding,可让您将命令分配给 selectionchanged 事件。我把它关掉了,它停止取消选中复选框。我想我必须找到另一种方式。
  • 您可以设置绑定OneWayToSource,如果其意图是它只会被用户交互“检查”。

标签: wpf listview gridview mvvm checkbox


【解决方案1】:

如果您不需要修改复选框,则将绑定更改为OneWay 和/或将复选框上的IsEnabled 设置为False

【讨论】:

  • 我确实需要修改它。这就是为什么它有问题。如果您注意到,复选框上有一个命令。
猜你喜欢
  • 2015-07-19
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多