Code Monkey home page Code Monkey logo

Comments (1)

alex-valchuk avatar alex-valchuk commented on August 24, 2024

Looks like GMapControl for Avalonia UI never worked properly.
I tried to debug it checking it under the hood and found the following:
at least the xaml template used inside GMapControl is not compatible with avalonia.
Here is how it looks like (just a copy of WPF version):

<ItemsControl.ItemTemplate>
    <DataTemplate>
        <ContentPresenter Content="{Binding Path=Shape}" />
    </DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <Canvas />
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
    <Style>
        <Setter Property="Canvas.Left" Value="{Binding Path=LocalPositionX}"/>
        <Setter Property="Canvas.Top" Value="{Binding Path=LocalPositionY}"/>
    </Style>
</ItemsControl.ItemContainerStyle>

And here is what is expected to be (ItemContainerTheme instead of ItemContainerStyle):

<ItemsControl.ItemTemplate>
    <DataTemplate>
        <ContentPresenter Content="{Binding Path=Shape}" />
    </DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <Canvas />
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerTheme>
    <ControlTheme TargetType = "ContentPresenter">
        <Setter Property = "Canvas.Left" Value = "{Binding Path=LocalPositionX}" />
        <Setter Property = "Canvas.Top" Value = "{Binding Path=LocalPositionY}" />
    </ControlTheme >
</ItemsControl.ItemContainerTheme>

It seems like the ItemsControl (the parent class of GMapControl) behaves differently in comparison to one from WPF and it does not allow to map the data using the provided template.
I tried to map the data on the pure Avalonia ItemsControl with the provided template and saw it working.

So, the question is how to instruct the control that inherits from Avalonia ItemsControl to display items using the provided custom template?

I address the last question to the main Avalonia UI contributors. Maybe they can help us somehow to progress with this issue.
@MikeCodesDotNET, @kekekeks, @MrJul, @grokys, @maxkatz6

from gmap.net.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.