C# “绑定不工作”复选框
嗨 我在WPF中设置了复选框,但绑定无法正常工作。我选中了我创建的列表,它包含正确格式的数据,但当我使用列表框绑定时,它无法正常工作 列表框中仅显示最后一项列表中的项目次数 复选框列表XMLC# “绑定不工作”复选框,c#,wpf,C#,Wpf,嗨 我在WPF中设置了复选框,但绑定无法正常工作。我选中了我创建的列表,它包含正确格式的数据,但当我使用列表框绑定时,它无法正常工作 列表框中仅显示最后一项列表中的项目次数 复选框列表XML <ListBox x:Name="list" Margin="18,100,535,74"> <ListBox.ItemTemplate> <HierarchicalDataTemplate> <my:RibbonCheckBox
<ListBox x:Name="list" Margin="18,100,535,74">
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<my:RibbonCheckBox Label="{Binding Name}" IsChecked="{Binding IsChecked}" />
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>
按钮填充列表框
private void button1_Click(object sender, RoutedEventArgs e)
{
List<CheckedListItem> AvailablePresentationObjects = new List<CheckedListItem>();
CheckedListItem item = new CheckedListItem();
for (int i = 0; i < 10; i++)
{
item.Id = i;
item.Name = i.ToString();
item.IsChecked = false;
AvailablePresentationObjects.Add(item);
}
list.ItemsSource = AvailablePresentationObjects;
}
private void按钮1\u单击(对象发送者,路由目标)
{
List AvailablePresentationObjects=新列表();
CheckedListItem=新的CheckedListItem();
对于(int i=0;i<10;i++)
{
项目Id=i;
item.Name=i.ToString();
item.IsChecked=false;
可用的表示对象。添加(项);
}
list.ItemsSource=可用的表示对象;
}
实例化您的CheckedListItem=new CheckedListItem()代码>在for循环之外,并且只初始化您编辑了10次的CheckedListItem
的一个实例。只剩下最后一次编辑
您还将这个非常相同的实例添加到AvailablePresentationObjects
中10次
请尝试以下操作:
for (int i = 0; i < 10; i++)
{
CheckedListItem item = new CheckedListItem();
item.Id = i;
item.Name = i.ToString();
item.IsChecked = false;
AvailablePresentationObjects.Add(item);
}
for(int i=0;i<10;i++)
{
CheckedListItem=新的CheckedListItem();
项目Id=i;
item.Name=i.ToString();
item.IsChecked=false;
可用的表示对象。添加(项);
}
实例化您的CheckedListItem=new CheckedListItem()代码>在for循环之外,并且只初始化您编辑了10次的CheckedListItem
的一个实例。只剩下最后一次编辑
您还将这个非常相同的实例添加到AvailablePresentationObjects
中10次
请尝试以下操作:
for (int i = 0; i < 10; i++)
{
CheckedListItem item = new CheckedListItem();
item.Id = i;
item.Name = i.ToString();
item.IsChecked = false;
AvailablePresentationObjects.Add(item);
}
for(int i=0;i<10;i++)
{
CheckedListItem=新的CheckedListItem();
项目Id=i;
item.Name=i.ToString();
item.IsChecked=false;
可用的表示对象。添加(项);
}
您只创建一个CheckedListItem,然后运行每个i更改单个CheckedListItem您需要在列表中的CheckedListItems中循环,将相关的i应用于每个i。您只创建一个CheckedListItem,然后运行每个i更改单个CheckedListItem需要循环检查列表中的CheckedListItems,并将相关的i应用于每个项目。好的,这很有效,但逻辑是什么?比如为什么我们要创建新实例?当它更新时。并且可用的PresentationObjects包含正确的值如果您想要10个CheckedListItem实例,则需要创建10个(新关键字)。否则你只有1个。您一直在编辑第一个实例。好吧,这很有效,但逻辑是什么?比如为什么我们要创建新实例?当它更新时。并且可用的PresentationObjects包含正确的值如果您想要10个CheckedListItem实例,则需要创建10个(新关键字)。否则你只有1个。您一直在编辑第一个实例。