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

  • Darren Kitchen

    Darren Kitch

    3 EKİM 2011
  • mahalodotcom

    mahalodotcom

    8 HAZİRAN 2007
  • Submissions101

    Submissions1

    23 ŞUBAT 2007