Avalonia.FuncUI
Avalonia.FuncUI copied to clipboard
`DataTemplateView` may not work in some cases
For example, MenuItemTemplate from FluentAvalonia.NavigationView
. The viewFunc can be triggered, but the view is not applied.
You have to use builtin FuncDataTemplate
instead.
It seems that it's because of NavigationView requiring NavigationViewItem as top element in template. And it doesn't fit the restriction.
Is there a different behavior from FuncDataTemplate
or something I did wrong?
// this works
FuncDataTemplate<string>(fun value scope ->
let nvi = NavigationViewItem()
nvi.Content <- value + "!!!"
nvi)
// this doesn't work
DataTemplateView<_, _>.create (fun item ->
create<NavigationViewItem> [] (fun nv -> nv.Content <- (item + "!!!"))) // my wrapper calling `init` and ViewBuilder for third party controls
DataTemplateView<_, _>
can you fill in the types here ind make sure the template matches the data type?
Yhea, it is DataTemplateView<string, IView<NavigationViewItem>>
.
This doesn't work either. And with a break point set I can see the template is called twice with item being "a"
. Which just like returning an element other than NavigationViewItem
in FuncDataTemplate
, the template is discarded samely.
(With source [ "a"; "b"; "c" ]
)