2013-02-20 65 views
0

我已經工作了Path.Data MultiBinding(路徑這裏是System.Windows.Shapes.Path)。 轉換器返回類型是System.Windows.Media.PathGeometry如何MultiBinding太GeometryGroup

<Path.Data> 
    <MultiBinding Converter="{StaticResource ResourceKey=ToPathGeometryMultiConverter}"> 
    <Binding Path="A"/> 
    <Binding Path="B"/> 
    <Binding Path="C"/> 
    </MultiBinding>--> 
</Path.Data> 

現在我想改變結構了一下,在GeometryGroup添加多個幾何形狀。我不知道如何在這裏添加MultiBinding的語法。

<Path.Data>      
    <GeometryGroup>  
    <PathGeometry> 
    <!-- HOW CAN I MULTIBIND HERE --> 
    </PathGeometry> 
    </GeometryGrounp> 
<Path.Data> 

無論我嘗試過,我總是有一個編譯錯誤。

回答

1

您可以結合PathGeometry.Figures財產,有一個返回PathFigureCollection一個轉換器,但我怕你一定要活下去的事實VS Designer抱怨XAML。

<Path.Data> 
    <GeometryGroup> 
     <PathGeometry> 
      <PathGeometry.Figures> 
       <MultiBinding Converter="{StaticResource PathFiguresConverter}"> 
        <Binding Path="A"/> 
        <Binding Path="B"/> 
        <Binding Path="C"/> 
       </MultiBinding> 
      </PathGeometry.Figures> 
     </PathGeometry> 
    </GeometryGroup> 
</Path.Data> 
+0

謝謝。這樣可行。你知道爲什麼VS設計師抱怨,即使它編譯和運行良好嗎? – 2013-02-20 11:40:42

+0

由於有消息稱,它希望你添加圖項目到圖收藏,當然一個MultiBinding不是圖。不知道爲什麼它不能檢測到它沒有添加項目,而是通過綁定來設置屬性。 – Clemens 2013-02-20 11:50:40

-1

你可以嘗試把你的綁定代碼,而不是標籤的PathGeometry的

<Path.Data>      
    <MultiBinding Converter="{StaticResource ResourceKey=ToPathGeometryMultiConverter}"> 
     <Binding Path="A"/> 
     <Binding Path="B"/> 
     <Binding Path="C"/> 
    </MultiBinding> 
<Path.Data> 
+0

不工作。它拋出一個XamlParseException。 Multibinding不能用於GeometryCollection。附加信息:它需要一個DependencyObject的DependencyProperty。 – 2013-02-20 09:01:38

+0

刪除GeometryGroup標籤太 – Blablablaster 2013-02-20 09:40:29

+1

你在開玩笑吧?你讀過我的問題了嗎?你給我的'解決方案'是我在開始時的工作代碼。現在我想擴展程序並添加GeometryGroup(幾個不同的幾何圖形的集合)。 – 2013-02-20 10:30:11