カスタムツリービューの作成を開始しましたが、なぜそれを表示できないように見えるのか疑問に思っていました. treeview を MultiSelectTreeView に置き換える以外は xaml を変更しませんでしたが、表示されません。ツリービューを拡張すると、拡張されたクラスは親クラスの既定のコントロール テンプレートを継承しますか?
public class MultiSelectTreeView:TreeView
{
#region Data Members
private TreeViewItem LastItem = null;
private ObservableCollection<TreeViewItem> SelectedTreeViewItemsList = new ObservableCollection<TreeViewItem>();
public ObservableCollection<TreeViewItem> SelectedNodes
{
get
{
return SelectedTreeViewItemsList;
}
private set
{
SelectedTreeViewItemsList.Clear();
SelectedTreeViewItemsList = value;
}
}
public bool CtrlDown
{
get
{
return Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl);
}
}
public bool ShiftDown
{
get
{
return Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift);
}
}
#endregion Data Members
#region Constructors
/// <summary>
/// Static Constructor defines the key used to find the default theme style for this control
/// </summary>
static MultiSelectTreeView()
{
DefaultStyleKeyProperty.OverrideMetadata(
typeof(MultiSelectTreeView), new FrameworkPropertyMetadata(typeof(MultiSelectTreeView)));
}
public MultiSelectTreeView()
{
this.SelectedItemChanged += new RoutedPropertyChangedEventHandler<object>(MultiSelectTreeView_SelectedItemChanged);
this.Background = Brushes.Blue;
this.Foreground = Brushes.Yellow;
}