簡體   English   中英

擴展WPF Toolkit中的CheckListBoxItem不存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM