Windows phone 7 如何在wp7中获取列表框中选中和未选中复选框项的ID?
默认情况下,某些列表框项目处于选中状态,而某些列表框项目处于取消选中状态。 然后用户可以更改选中或未选中的项目。请告诉我如何维护选中的ID,未选中的IDWindows phone 7 如何在wp7中获取列表框中选中和未选中复选框项的ID?,windows-phone-7,listbox,Windows Phone 7,Listbox,默认情况下,某些列表框项目处于选中状态,而某些列表框项目处于取消选中状态。 然后用户可以更改选中或未选中的项目。请告诉我如何维护选中的ID,未选中的ID private void CheckBox_Checked(object sender, RoutedEventArgs e) { ListBoxItem checedItem = this.listBox2.ItemContainerGenerator.ContainerFromItem((sende
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
ListBoxItem checedItem = this.listBox2.ItemContainerGenerator.ContainerFromItem((sender as CheckBox).DataContext) as ListBoxItem;
if (checedItem != null)
{
checedItem.IsSelected = true;
}
}
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
ListBoxItem checedItem = this.listBox2.ItemContainerGenerator.ContainerFromItem((sender as CheckBox).DataContext) as ListBoxItem;
if (checedItem != null)
{
checedItem.IsSelected = false;
}
}
string result1 = e.Result.ToString();
XDocument xmlDocu = XDocument.Load(new MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(result)));
interestrates = (from rts in xmlDocu.Descendants("Friend")
select new SampleCheckedData
{
Id = (string)rts.Element("userid"),
Name = (string)rts.Element("name"),
Icon = (string)rts.Element("imageurl"),
IsChecked = !(Boolean)rts.Element("visiblestatus"),
}).ToList<SampleCheckedData>();
this.listBox2.ItemsSource = interestrates;
<ListBox x:Name="listBox2" SelectionMode="Multiple" Margin="0,67,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Icon}" Stretch="Fill" MaxHeight="Infinity" MaxWidth="Infinity" Width="100" Height="100" />
<TextBlock Text="{Binding Name}" Width="300" VerticalAlignment="Center" TextWrapping="NoWrap" FontSize="22" />
<CheckBox IsChecked="{Binding IsChecked}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
请告诉我如何维护选中的userid、未选中的userid…..假设您将集合存储在代码中的某个位置,而不是直接将其分配给ListBox ItemsSource属性,您应该能够简单地查看集合项的属性
var checkedItems = from item in interestrates where item.IsChecked select item;
var uncheckedItems = from item in interestrates where !item.IsChecked select item;
如果您只需要userid,那么将查询更改为
var checkedItems = from item in interestrates where item.IsChecked select item.Id;
var uncheckedItems = from item in interestrates where !item.IsChecked select item.Id;
还显示ListBox中复选框的xaml为什么我在checkeditems、uncheckeditems中总是得到空值?如果没有看到您的数据,我不知道。您可能需要修改代码-这是为了让您了解为实现所需的解决方案需要做些什么,而不是您需要的确切代码。我正在显示带有默认数据库值的复选框。在用户选中并取消选中复选框后,需要获得修改的用户ID…请检查我的修改代码…可以吗请帮助我,我没有得到。正如我上面提到的,如果不查看您的数据,我将无能为力,无法找出查询不起作用的原因。确保interestrates本身不是空的,并确保使用正确的LINQ查询从集合中提取数据。
var checkedItems = from item in interestrates where item.IsChecked select item.Id;
var uncheckedItems = from item in interestrates where !item.IsChecked select item.Id;