WPF'de bu senaryoda bir nesne yöntemine nasıl bağlanırsınız?
public class RootObject
{
public string Name { get; }
public ObservableCollection<ChildObject> GetChildren() {...}
}
public class ChildObject
{
public string Name { get; }
}
XAML:
<TreeView ItemsSource="some list of RootObjects">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type data:RootObject}"
ItemsSource="???">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type data:ChildObject}">
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
Burada GetChildrenher bir RootObjectağaçtaki yönteme bağlanmak istiyorum .
DÜZENLEME bir bağlanma ObjectDataProviderBen bir öğe listesi için bağlayıcı olduğum için işe görünmüyor ve ObjectDataProviderihtiyaçları ya bir statik yöntem veya buna kendi örneği ve kullanımları işte yaratır.
Örneğin, Matt'in cevabını kullanarak şunu elde ederim:
System.Windows.Data Hatası: 33: ObjectDataProvider nesneyi oluşturamıyor; Tür = 'RootObject'; Hata = 'Yapıcı için yanlış parametreler.'
System.Windows.Data Hatası: 34: ObjectDataProvider: Tür üzerinde yöntemi çağırmaya çalışırken başarısızlık; Yöntem = 'GetChildren'; Tür = 'KökNesne'; Hata = 'Belirtilen üye hedefte çağrılamaz.' TargetException: 'System.Reflection.TargetException: Statik olmayan yöntem bir hedef gerektirir.