SORU
12 AĞUSTOS 2009, ÇARŞAMBA


ItemsControl bir DataTemplate Tuval özelliklerini ayarlama

ItemsControl Bu databind çalışıyorum:

<ItemsControl ItemsSource="{Binding Path=Nodes, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

Bu kullanarak DataTemplate ayrı ayrı Canvas Node benim unsurları doğru pozisyon için çalışıyorum:

<DataTemplate DataType="{x:Type Model:EndNode}">
    <Controls:EndNodeControl Canvas.Left="{Binding Path=XPos}" Canvas.Top="{Binding Path=YPos}" />
</DataTemplate>

Ancak, beklendiği gibi çalışmıyor. Tüm düğüm elemanları aynı pozisyonda üst üste çizilir. Bunu gerçekleştirmek için nasıl herhangi bir öneriniz?

CEVAP
12 AĞUSTOS 2009, ÇARŞAMBA


Eklenen özellikler sadece Tuval doğrudan çocuk üzerinde çalışmak. Itemscontrol doğrudan çocuklar gibi ContentPresenter kontrol edecek, bunun için bir stil eklemek isteyebilirsiniz:

<ItemsControl ItemsSource="{Binding Path=Nodes}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Canvas />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style TargetType="ContentPresenter">
            <Setter Property="Canvas.Left" Value="{Binding Path=XPos}" />
            <Setter Property="Canvas.Top" Value="{Binding Path=YPos}" />
        </Style>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>

Bu yardımcı olur umarım

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • thewinekone

    thewinekone

    17 Aralık 2005