从其中获取ID并将其填充到列表中的XML如下:
<TestCase ID="TEST">
<Frames>
<Frame>ff</Frame>
<Frame>ff 53</Frame>
</Frames>
</TestCase>我创建了一个List,如下所示:
public List<CheckedListItem> AvailableFrames;
public class CheckedListItem
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsChecked { get; set; }
}我创建CheckListBox的Xaml如下,
<xctk:CheckListBox x:Name="ListBox_TestCase"
ItemsSource="{Binding AvailableFrames}"
SelectedMemberPath="{Binding IsChecked}"
SelectedValue="{Binding Name}"/>下面是如何将从XML解析的条目分配给List,然后分配给CheckBoxList
private void Button_TestCase_Click(object sender, RoutedEventArgs e)
{
MessageBoxButton btn = MessageBoxButton.OK;
try
{
TestCases1 = Serializer.Deserialize("TEST.xml");
AvailableFrames = new List<CheckedListItem>();
if (TestCases1 != null)
{
Int32 xx = 0;
foreach (TestCase item in OSDPTestCases1.TestCases)
{
AvailableFrames.Add(new CheckedListItem() {Id = xx++, Name = item.ID, IsChecked = false });
}
}
ListBox_TestCase.ItemsSource = AvailableFrames;
}
catch (Exception ex)
{
var result = ModernDialog.ShowMessage(ex.Message, "Error", btn);
}
}但是,我无法获得列表AvailableFrames来填充到CheckBoxList项的“名称”条目。它以某种方式获取条目的数量(在我的例子中为5),并填充5个空的checkList项,但是"ID“中的名称或值没有反映出来。
为什么List<AvailableFrames>的值没有出现在CheckBoxList中?我猜我有一个有约束力的问题。
请指点。
ScreenShot:

发布于 2014-08-28 09:29:22
看起来“现代UI”或mui不支持CheckListBox。当我从我的项目中移除mui界面时,我可以让它正常工作。
我们还可以为每个条目使用make一个带有复选框的ListBox,如下所示,这是由现代UI支持的。
<ListBox x:Name="ListBox_TestCase" ItemsSource="{Binding AvailableFrames}" Margin="172,10,283,15" >
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<CheckBox x:Name="CheckBox_TestCase" Content="{Binding Name}" IsChecked="{Binding IsChecked}"/>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>发布于 2014-08-26 10:53:09
您正在以错误的方式填充SelectedMemberPath和SelectedValue属性。不要使用{Binding}语法,而是尝试以下方法:
<xctk:CheckListBox ... ItemsSource="{Binding AvailableFrames}" SelectedMemberPath="IsChecked" DisplayMemberPath="Name" ValueMemberPath="Id"/>https://stackoverflow.com/questions/25503924
复制相似问题