WPF. Отображение коллекции объектов с координатами
От: nekoriu Россия  
Дата: 27.11.22 20:50
Оценка:
Здравствуйте.

Имеется коллекция точек с координатами. Как отобразить эти точки в соответствии с их координатами, используя биндинг в xaml, без code behind? В какую сторону копать?
Re: WPF. Отображение коллекции объектов с координатами
От: vaa https://www.youtube.com/playlist?list=PLtrvASfI1KW7VOYRKjglcagQzWLoxlncl
Дата: 28.11.22 01:23
Оценка: 2 (1)
Здравствуйте, nekoriu, Вы писали:

N>Здравствуйте.


N>Имеется коллекция точек с координатами. Как отобразить эти точки в соответствии с их координатами, используя биндинг в xaml, без code behind? В какую сторону копать?


вот вроде по координатам рисует

еще canvas есть
Отредактировано 28.11.2022 1:25 vaa . Предыдущая версия .
Re: WPF. Отображение коллекции объектов с координатами
От: Osaka  
Дата: 28.11.22 11:16
Оценка: 2 (1)
N>Имеется коллекция точек с координатами. Как отобразить эти точки в соответствии с их координатами, используя биндинг в xaml, без code behind? В какую сторону копать?
Chart
Re[2]: WPF. Отображение коллекции объектов с координатами
От: nekoriu Россия  
Дата: 30.11.22 08:55
Оценка:
N>>Имеется коллекция точек с координатами. Как отобразить эти точки в соответствии с их координатами, используя биндинг в xaml, без code behind? В какую сторону копать?
O>Chart

А если в коллекции геометрические фигуры?
Re: WPF. Отображение коллекции объектов с координатами
От: nekoriu Россия  
Дата: 30.11.22 14:14
Оценка: +1
N>Имеется коллекция точек с координатами. Как отобразить эти точки в соответствии с их координатами, используя биндинг в xaml, без code behind? В какую сторону копать?

Нашел решение: https://habr.com/ru/post/686438/.
    public class ViewModel
    {
        public List<Item> Items { get; set; } = new List<Item>()
    {
        new Item {X = 100, Y = 200, Size=10, Text = "First"},
        new Item {X = 500, Y = 300, Size=20, Text = "Second"},
        new Item {X = 300, Y = 500, Size=30, Text = "Third"},
    };

        public int Width { get; set; } = 600;
        public int Height { get; set; } = 600;
    }

    public class Item
    {
        public int X { get; set; }
        public int Y { get; set; }
        public int Size { get; set; }
        public string Text { get; set; }
    }


<Window x:Class="WPFClient.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WPFClient"
        mc:Ignorable="d"
        Title="MainWindow" Height="600" Width="600">
    <Window.DataContext>
        <local:ViewModel />
    </Window.DataContext>
    <Viewbox Stretch="Uniform">
        <ItemsControl ItemsSource="{Binding Items}" Width="{Binding Width}" Height="{Binding Height}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas Background="Silver" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.Resources>
                <Style TargetType="ContentPresenter">
                    <Setter Property="Canvas.Left" Value="{Binding X}" />
                    <Setter Property="Canvas.Top" Value="{Binding Y}" />
                </Style>

                <DataTemplate DataType="{x:Type local:Item}">
                    <Rectangle Width="{Binding Size}" Height="{Binding Size}">
                        <Rectangle.Fill>
                            <SolidColorBrush Color="Gray" />
                        </Rectangle.Fill>
                    </Rectangle>
                </DataTemplate>
            </ItemsControl.Resources>
        </ItemsControl>

    </Viewbox>
</Window>
Отредактировано 30.11.2022 14:22 nekoriu . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.