所以,我试图将String类型的LinkedList绑定到ListView中复选框的Content属性 . 同时,我想将Boolean类型的LinkedList IsCompleted绑定到ListView中复选框的IsChecked属性 . 我可以做任何一个但不能两个都做 . 这是我的代码:XAML
<ListView x:Name="myListView" ItemsSource="{Binding Tasks}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<CheckBox x:Name="myCheckBox" IsChecked="{Binding IsCompleted}" Content="{Binding}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
C#
public sealed partial class AddPage : Page
{
private Projects project = new Projects();
this.DataContext = project;
}
数据模型:
public class Projects
{
public LinkedList<string> Tasks { get; set; }
public LinkedList<bool> IsCompleted { get; set; }
}
我已经尝试不使用ItemsSource for ListView并依赖C#中的this.DataContext或myListView.DataContext以及内容的和IsChecked的 . 但没有ItemsSource就没有显示任何内容 . 我也尝试指定绑定路径无济于事 . 我很乐意感谢任何帮助 . 非常感谢 .
1 回答
根据您的代码,我们可以看到CheckBox是ListView的子代,如下所示:
所以这意味着一个ListViewItem只有一个CheckBox,这样我们就无法将LinkedList( IsCompleted )绑定到CheckBox,我们只能为每个CheckBox绑定一个值 .
此外,LinkedList或其他集合只能用于ItemsControl:如ListView,ListBox,GridView等 .
为了将两种不同的数据类型绑定到ListView,请尝试修改代码以使 Tasks and IsCompleted 使用 string/bool 数据类型而不是 LinkedList Collection,之后我们可以绑定包含Task对象的类对象的LinkedList集合 . IsCompleted到ListView .
有关更多信息,请检查以下代码:
XAML代码:
CS代码:
}
结果:
谢谢 .