Динамически создавать элементы и привязывать их к списку <T> - PullRequest
1 голос
/ 28 сентября 2010

У меня есть ObservableCollection<Class1>, где Class1 содержит x и y позиций в качестве свойств. Список может быть любого размера. У меня есть ViewModel, которая представляет коллекцию как свойство. На мой взгляд, я хочу создать список элементов на основе коллекции, а затем установить их позиции x и y на основе свойств объекта Class1.

Как я могу это сделать? Я знаю, что могу легко связать элемент управления коллекцией (например, представление списка) с коллекцией. Но мне нужно связать его, и элементы используют свойство x, y, чтобы позиционировать себя на холсте. Любые идеи приветствуются.

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

Вы можете использовать Canvas в качестве своей ItemsPanel в ItemsControl, а затем связать свойства Canvas.Top и Canvas.Left в ItemContainerStyle со свойствами X и Y:

<ItemsControl ItemsSource="{Binding}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Canvas />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>

        <ItemsControl.ItemContainerStyle>
            <Style>
                <Setter Property="Canvas.Left" Value="{Binding X}" />
                <Setter Property="Canvas.Top" Value="{Binding Y}" />
            </Style>
        </ItemsControl.ItemContainerStyle>
    </ItemsControl>
0 голосов
/ 28 сентября 2010

Вы можете использовать Collection View или что-то подобное для достижения этой цели.

Надеюсь, это поможет.

Спасибо, Damián

...