現在のセルの幅全体を取得しようとしているので、そのセルの特定の割合の幅で四角形を描画できます。ここで提案されているように、幅プロパティを複数回設定するためにバインドできませんでした。そこで私の次の試みは、UtilPct を使用してグリッドをコンバーターに渡し、(最初の列の) 150 を減算して、幅を返すことでした。ただし、グリッドには幅がありません。Snoop で NaN と表示され、実際の幅は 0 ですか?
四角形の幅を調整できるように、実際に計算されたセルの幅を取得する最良の方法は何ですか? 他のアプローチがある場合は、助けていただければ幸いです。
XAML:
<ItemsControl x:Name="icBrokerCreditList" Grid.Row="1" Grid.Column="1" ItemsSource="{Binding Path=BrokerCreditList}" HorizontalAlignment="Stretch">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch" x:Name="brokerGrid">
<Grid.RowDefinitions>
<RowDefinition Height="20"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition x:Name="utilCol" Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Background="White" Foreground="Black" FontSize="12" Text="{Binding Path=BrokerName}"></TextBlock>
<Rectangle Fill="Green" Height="20" Grid.Row="0" Grid.Column="1">
<Rectangle.Width>
<MultiBinding Converter="{StaticResource PercentageConverter}">
<Binding Path="ActualWidth" ElementName="utilCol" />
<Binding Path="UtilPct" />
</MultiBinding>
</Rectangle.Width>
</Rectangle>
</TextBlock>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>