C# 从另一个Itemtype获取TreeViewItem

C# 从另一个Itemtype获取TreeViewItem,c#,wpf,xaml,treeview,C#,Wpf,Xaml,Treeview,我有麻烦了,我找了又找,但找不到解决办法。现在我想在这里提出这个问题。我有一个简单的树视图,其元素绑定到ViewModel中的属性: <!-- my XAML-Code --> ItemsSource="{Binding RessourcesTree}" // my ViewModel IList <RessourceTreeViewItem> RessourcesTree 我的问题是,我不知道如何从类型为resourcetreeviewItem的元素(类型为Tree

我有麻烦了,我找了又找,但找不到解决办法。现在我想在这里提出这个问题。我有一个简单的树视图,其元素绑定到ViewModel中的属性:

<!-- my XAML-Code -->
ItemsSource="{Binding RessourcesTree}"

// my ViewModel
IList <RessourceTreeViewItem> RessourcesTree

我的问题是,我不知道如何从类型为resourcetreeviewItem的元素(类型为TreeViewItem的所有者元素)中获取。是否有办法将我的ResourceTree中的项目作为TreeItem类型的每个实际项目获取?

ResourceTreeViewItem是您自己的类型,这可能就是您无法获取结果的原因-尝试在web上搜索TreeItem以获取一些示例

假设RessourceTreeViewItem是对TreeViewItem的重写,您还没有提供足够的信息来确保这一点,但我假设您可以使用该属性从命名到其项

RessourcesTree.Items
所以你可以这样做,让每一个都成为一个树状项目

foreach(var item in RessourcesTree.Items)
{
    var treeItem = (TreeViewItem)item;
    //do something with TreeViewItem

    //remember a TreeView is recursive.....
}

我的类ResourceTreeViewItem继承自以下类:公共抽象类PropertyChangedBase:INotifyPropertyChanged,INotifyPropertyChanged。因此,我无法将该项目直接投射到TreeViewItem。这很好,但事实并非如此。非常感谢。它是否具有TreeViewItem类型的属性?如果不是,那么你所要求的当然是不可能的。我会考虑使用现有的WPF TreeViewItem,并根据您的需要扩展它。是的,我有一个TreeViewItem类型的属性。在我的XAML中,我有一个with Setter和Property=behaviors:TreeViewBehaviour.Transmitter Value={Binding}。加载项时,会触发TransmitterChanged,因此我有一个TreeViewItem。但是,如果添加了RessourceItem,并且TreeViewItem未展开,则不会加载它。所以TransmitterChanged没有被解雇,我也没有TreeView项目。因此,我在寻找一种交替的方式。