Skip to content

Changing location of elements based on data

June 18, 2007

Today, another forum post asked about how to "Databind" the position of elements on a canvas.  That always remains a great feature.

I pointed him towards the previous time I answered the question with the following updated sample from Nico’s blog:

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    >
  <Page.Resources>
    <XmlDataProvider x:Key="myData" XPath="/Data">
     <x:XData>
      <Data xmlns="">
        <Item>
          <X>100</X>
          <Y>100</Y>
          <Width>50</Width>
          <Height>50</Height>
        </Item>
        <Item>
          <X>200</X>
          <Y>200</Y>
          <Width>50</Width>
          <Height>50</Height>
        </Item>
        <Item>
          <X>300</X>
          <Y>300</Y>
          <Width>50</Width>
          <Height>50</Height>
        </Item>
      </Data>
     </x:XData>
    </XmlDataProvider>
    <DataTemplate x:Key="myDataTemplate">
      <Border Width="{Binding XPath=Width}" Height="{Binding XPath=Height}" BorderBrush="Black" BorderThickness="1,1,1,1">
      </Border>
    </DataTemplate>
  </Page.Resources>
  <StackPanel Orientation="Vertical">
    <ItemsControl ItemTemplate="{StaticResource myDataTemplate}" ItemsSource="{Binding Source={StaticResource myData}, XPath=Item}"
>
      <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
          <Canvas Height="500"></Canvas>
        </ItemsPanelTemplate>
      </ItemsControl.ItemsPanel>

      <ItemsControl.ItemContainerStyle>
        <Style TargetType="{x:Type ContentPresenter}">
          <Setter Property="Canvas.Left" Value="{Binding XPath=X}"/>
          <Setter Property="Canvas.Top" Value="{Binding XPath=Y}"/>
        </Style>
      </ItemsControl.ItemContainerStyle>
    </ItemsControl>

  </StackPanel>
</Page>

 You can quickly open this and run it XamlPad or XamlPad like applications – http://robrelyea.com/xaml/editors will take you to a short list…

From → WPF

15 Comments
  1. Unknown permalink

    lotro gold lord of the rings gold lord of the rings online gold lotro gold lord of the rings gold lord of the rings
    online gold Warhammer gold
    Warhammer online gold Warhammer money War gold War money Tabula Rasa Credit lotro gold lord of the rings gold lord of the rings online gold lord of the
    rings online gold lord of the rings
    gold Tabula Rasa Credit World of Warcraft gold PotBS Doubloon Pirates of the
    Burning Sea Doubloon PotBS Gold Pirates of the Burning Sea
    Gold lotro gold lord of the rings gold lord of the rings online gold Tabula Rasa Credit Warhammer gold Warhammer online gold PotBS Doubloon PotBS gold Pirates of the Burning Sea
    gold Pirates of the
    Burning Sea Doubloon

  2. Unknown permalink

    ECサイト構築   ウィークリーマンション
    治験 結婚指輪
    太陽光発電 結婚式 演出 吉原 ソープ
    債務整理
     害虫駆除 法律事務所 求人 看護師
     キャッシング
    転職 バイアグラ ショッピング枠 現金化  釣り 釣具
    別れさせ屋 価格   賃貸 
    不動産担保ローン  介護 看護師   会社設立   横浜中華街 ウェディングドレス  ウェディング
    カラコン 
    メル友 ウィークリーマンション
    自動車ガラス  不動産 ダイビング
     葬儀 東京ショッピング枠 現金化  データ復旧  テレマーケティング  RAID復旧 データ復元 データ復旧

  3. Unknown permalink

      吉原 ソープ
    デリヘル
    精力剤  勃起薬 熟女横浜デリヘル  品川デリヘル    すすきの 風俗  
     

  4. Unknown permalink

    ウェディング RMT データ復旧 メタボ対策 データ復旧 データ復元 RAID復旧 テレマーケティング  株式投資 ショッピング枠 現金化 釣り 釣具  横浜 賃貸  結婚指輪  結婚式 演出

    データ復旧  介護   看護師   バイアグラ  害虫駆除   横浜中華街  太陽光発電  データ復旧  不動産担保ローン   会社設立  ダイビング  治験 ウィークリーマンション   横浜中華街  転職 ウェディングドレス  ウェディングドレス  子宮筋腫  フローリング オーク 投資
    お取り寄せグルメ

  5. Unknown permalink

     122123124125126127128129131
     132133134135136137138139141
     142143144145146147148149
     152153154155156157158159161

  6. Unknown permalink

    1

    23456789

    >

    الأخيرة »

    2345678911
     121314151617181921
     222324252627282931
     727374757677787981

  7. Unknown permalink

    エスピーエフ 花粉症  新宿賃貸    マンスリーマンション     営業代行 印鑑 営業支援  雛人形  フレッツ光  人材派遣  マンション 投資 マンション投資   オートローン   ゴルフ会員権   バイク便  派遣   投資マンション   鼻づまり  Bフレッツ  FX  いびき  販売促進

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: