<ListBox Grid.Row="0" Grid.Column="1" ItemsSource="{Binding AvailableColors}" SelectedItem="{Binding SelectedColor}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" Margin="10"></WrapPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<RadioButton GroupName="colorSelecter" Background="{Binding}"></RadioButton>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
如上代码,在页面上显示一个Listbox,上面有一系列的颜色选择单选按钮。
现有如下问题,当选择某个单选按钮时,并没有触发SelectedColor改变即listbox认为当前选择的项目没有改变,但实际上我已经选择了别的单选按钮,请问怎样处理这种情况。
SelectedItem的绑定哪里用Mode=TwoWay?
数据模板不要用单选按钮,直接用个Border显示颜色就行了
<DataTemplate>
<Border BorderThickness="1" BorderBrush="Black" Width="10" Height="10" Margin="1">
<Border.Background>
<SolidColorBrush Color="{Binding }"/>
</Border.Background>
</Border>
</DataTemplate>
试试换成这样 <RadioButton GroupName="colorSelecter" Background="{Binding}" IsChecked="{Binding IsSelected, Mode=TwoWay}"
您好:谢谢你的回答,只是不知道IsChecked="{Binding IsSelected, Mode=TwoWay}":IsSelected是什么属性。
@JustYong: 试过有用吗 IsSelected就是listboxitem的是否被选中的属性