2016-07-29 68 views
0

我有10 * 2(10行2列)网格控件。第二列包含每行的形状控制。对于数据,我有一个包含类的对象的列表让我们说一个整数成员。我想根据整数的值改变形状的颜色(我可以使用“转换器”)。我的问题是如何将椭圆Fill属性绑定到来自列表的源属性(int值)。请注意,我使用网格而不是列表框或列表视图在veiw和简单列表(不可观察集合)。网格绑定

+0

你能不能创造一个ValueConverter从从int到填充转换? – maillard

+0

是的。转换部分不是问题。我想知道如何实现绑定。 – OwlR

+0

如果您想更改Shape的颜色,只需将其绑定到[Fill](https://msdn.microsoft.com/ru-ru/library/system.windows.shapes.shape.fill(v = vs.110).aspx )作为@maillard说,并指定将int转换为刷的转换器。 '' – Shakra

回答

0

更改您的ItemsControl的网格,必须是这样的:

<ItemsControl ItemsSource="{Binding ItemsCollection}"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <UniformGrid Rows="10" Columns="2"/> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Shape Fill="{Binding YourIntValue, Converter=YourIntToBrushConverter}"> 
        YourData 
       </Shape> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl>