1

ブール値の ObservableCollection を含む ViewModel があります。そして、私にはコントロールがあります。ブール値のリストを、2 つの異なる色の四角形のリストとして視覚化したいと考えています。そのような拘束力を宣言することはできません。これが私のコードです:

<UserControl.Resources>
    <DataTemplate x:Key="DataTemplateName">
        <Grid Margin="12,0,0,0">
            <Rectangle Fill="{Binding ***PROBLEM***   
                                       , Converter={StaticResource BoolToSelectionBrushConverter}"} 
                                       HorizontalAlignment="Right" 
                                       Margin="0" Width="25" 
                                       Height="25" VerticalAlignment="Top" 
                                       StrokeThickness="0"/>
        </Grid>
    </DataTemplate>
</UserControl.Resources>

 <Grid x:Name="LayoutRoot">
<ItemsControl 
        ItemsSource="{Binding Statuses}" 
                    ItemTemplate="{StaticResource DataTemplateName}" 
                    Margin="0,0,8,0">
    <ItemsControl.ItemsPanel>
          <ItemsPanelTemplate>
                     <VirtualizingStackPanel Orientation="Horizontal" />
          </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
</ItemsControl>

ラッパーを作成せずに達成できますか?

public class Value 
{
   public bool IsOk{get;set;}
} 

名前付きプロパティへのバインド:

      <Grid Margin="12,0,0,0">
    <Rectangle Fill="{Binding IsOk 
                       , Converter={StaticResource BoolToSelectionBrushConverter}}" 
                       HorizontalAlignment="Right" 
                       Margin="0" Width="25" 
                       Height="25" VerticalAlignment="Top" 
                       StrokeThickness="0"/>
    </Grid>
4

2 に答える 2

3

現在、手元に WP7 開発環境がないため、テストされていませんが、次のように動作するはずです。

    <Rectangle Fill="{Binding BindsDirectlyToSource=True,
                              Converter=BoolToSelectionBrushConverter}" 
                               HorizontalAlignment="Right" 
                               Margin="0" Width="25" 
                               Height="25" VerticalAlignment="Top" 
                               StrokeThickness="0"/>
于 2012-05-14T13:04:58.410 に答える
2

これを使用できます:

<Rectangle Fill="{Binding .,Converter=BoolToSelectionBrushConverter}"... />
于 2012-05-14T13:05:04.427 に答える