有几种技术可以解决您的问题。我假设你有一些SelectionMode =“Multiple”或“Extended”的列表框,你需要跟踪选择的内容。我必须在列表框中显示复选框来做到这一点。
首先,手头的问题,建立一个新的观察集合这种方式(你需要在SHOPSelect一个构造函数一个SHOP:
Main.ShopList = new ObservableCollection<SHOPSelect>(
from shop in e.Result select new SHOPSelect(shop));
另一种方法是使用部分类定义IsSelected
public partial class SHOP
{
public bool IsSelected {get; set;}
}
另一种技术是再整的ListBoxItemContainer微软使用的默认模板是在这里:。http://msdn.microsoft.com/en-us/library/cc278062(v=VS.95).aspx通过更换
修改ListBoxItem的风格3210
<ContentPresenter
x:Name="contentPresenter"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"/>
与
<CheckBox x:Name="contentControl"
IsHitTestVisible="False" VerticalAlignment="Center"
HorizontalAlignment="Left" Margin="6,0,0,0"
IsChecked="{TemplateBinding IsSelected}">
<ContentPresenter Margin="6,0,0,0"
x:Name="contentPresenter"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
VerticalAlignment="Center"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" />
</CheckBox>
什么是你的Main.ShopList是一个ObservableCollection在这种情况下,这是你的问题。 –
2012-01-16 21:17:51