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 GetChildren
her bir RootObject
ağaçtaki yönteme bağlanmak istiyorum .
DÜZENLEME bir bağlanma ObjectDataProvider
Ben bir öğe listesi için bağlayıcı olduğum için işe görünmüyor ve ObjectDataProvider
ihtiyaç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.