我已将IsChecked
属性绑定到GridMetricChecked
属性,但问题是当我通过ViewModel将IsChecked
设置为true
时,则会选中复选框中的所有项目。我只想检查或取消选中一个项目。我不知道怎么做。
<telerik:RadComboBox Grid.Row="0" Grid.Column="4" HorizontalAlignment="Right"
VerticalContentAlignment="Center" Height="25" Margin="0,13,0,12" Width="100"
ItemsSource= "{Binding PieChartScriptSource, Mode=TwoWay}"
HorizontalContentAlignment="Stretch" IsTextSearchEnabled="True"
IsEditable="True" ToolTip="{localization:Translate FiledToolTip}" Grid.RowSpan="2">
<telerik:RadComboBox.ItemTemplate >
<DataTemplate>
<CheckBox Content="{Binding }" Checked="CheckBox_Checked"
IsChecked="{Binding DataContext.GridMetricChecked, Mode=TwoWay, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type telerik:RadWindow}}}" />
</DataTemplate>
</telerik:RadComboBox.ItemTemplate>
</telerik:RadComboBox>
答案 0 :(得分:0)
您已将CheckBox的IsChecked属性绑定到视图模型中包含的属性。因此,所有复选框都指向相同的属性,因此指向您获得的行为。相反,您应该在模型中创建一个属性,即ItemSource中的项类型(在您的情况下为PieChartScriptSource)。例如,如果PieChartScriptSource集合中的每个项目都是类ABC,那么这意味着每个ComboBox项目的DataContext将是类ABC类,因此您必须在类ABC中创建一个布尔属性,表示复选框的ISChecked状态。 希望这会有所帮助。