[英]CheckListBoxItem in extended WPF Toolkit doesn't exist
我正在使用Extended WPF Toolkit 2.0.0來設計CheckListBox
。 我需要為它設計復選框項,但由於某種原因, CheckListBoxItem
不存在。 或者至少,我的項目無法在任何地方找到參考。 這很有趣,因為本教程明確使用了那些,這似乎工作正常。 我以為它可能是一個不同的版本,但那么為什么有人會刪除它?
以下是我的代碼片段:
<Window x:Class="MyProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xctkToolkit="clr-namespace:Xceed.Wpf.Toolkit;assembly=Xceed.Wpf.Toolkit">
<Grid>
<xctkToolkit:CheckListBox Name="m_myCheckBox"> <!-- Works fine -->
<xctkToolkit:CheckListBox/> <!-- Doesn't work -->
</xctkToolkit:CheckListBox>
</Grid>
</Window>
我將依賴Xceed.Wpf.Toolkit
添加到我的項目中。 我得到的錯誤是:
錯誤MC3074:XML命名空間'clr-namespace中不存在標記'CheckListBoxItem':Xceed.Wpf.Toolkit; assembly = Xceed.Wpf.Toolkit'
我該如何解決這個問題?
只需使用ListBoxItem
。 CheckListBox
控件(以及任何ItemsContainer派生的控件)不需要定義自己的項類。 您可以使用任何ContentControl派生類,但ListBoxItem
提供有用的屬性,如IsSelected。
更好的解決方案是將CheckListBox
綁定到您自己的類的集合,並將綁定設置為類的屬性。 實際上,這在CheckListBox
控件本身的描述中CheckListBox
。 請注意,您必須將SelectedItemsOverride
綁定到所選項的列表而不是SelectedItems
例如,假設我在MainWindow.xaml.cs中有以下內容
public MainWindow()
{
DataContext = this;
MyItems = new List<string> { "a", "b", "c" };
JustSelectedItems = new List<string>();
InitializeComponent();
}
我可以像這樣創建一個CheckBoxList
:
<xctk:CheckListBox
ItemsSource="{Binding MyItems}"
SelectedItemsOverride="{Binding JustSelectedItems}" />
每次我檢查/取消選中一個項目時,它都會從JustSelectedItems中添加或刪除。
通常,您將使用MVVM框架為每個控件設置正確的DataContext,但是對於這個簡單的示例,我簡單地告訴表單綁定到自身
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.