【发布时间】: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