0

我有一个 TreeView 绑定到这样的数据源

 <TreeView ItemsSource="{Binding Data}" Width="190"  >

JinkData 在我的 ViewModel 中定义为类的属性。该属性是这样定义的

public Collection<JinkData> Data { get; set; } 

我有一个属性 IsSelected,它告诉我当前选择了 TreeView 的哪个节点,然后我可以使用“this”指针使用以下代码获取所选节点。

     private static object _selectedItem = null;
    // This is public get-only here but you could implement a public setter which also selects the item.
    // Also this should be moved to an instance property on a VM for the whole tree, otherwise there will be conflicts for more than one tree.
    public static object SelectedItem
    {
        get { return _selectedItem; }
        private set
        {
            if (_selectedItem != value)
            {
                _selectedItem = value;
                OnSelectedItemChanged();
            }
        }
    }

    static virtual void onselecteditemchanged()
    {
        // raise event / do other things
    }

    private bool _isSelected;
    public bool IsSelected
    {
        get { return _isSelected; }
        set
        {
            if (_isSelected != value)
            {
                _isSelected = value;
                OnPropertyChanged("IsSelected");
                if (_isSelected)
                {
                    SelectedItem = this;
                }
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected virtual void OnPropertyChanged(string propertyName)
    {
        var handler = this.PropertyChanged;
        if (handler != null)
            handler(this, new PropertyChangedEventArgs(propertyName));
    }

我面临的问题是 Set of IsSelected 中的“this”指针是集合 JinkData 但我希望这个指针成为整个集合的 selectedJinkData 。如何从 TreeView 中获取当前选择的 JinkData?

我将如何做到这一点?

4

0 回答 0