gpt4 book ai didi

wpf - 为什么我不能在 Rectangle.Width 上使用 IMultiValueConverter?

转载 作者:行者123 更新时间:2023-12-03 10:35:45 24 4
gpt4 key购买 nike

我需要将 ItemsControl 中的矩形绘制为根据绑定(bind)集合中定义的值和集合的最大值计算的宽度。所以我想我需要使用 MultiValueConverter 来传递项目的值和集合的最大值。

这个解决方案here向转换器添加属性的效果很好,但当我将 View 与 VM 分开时就不行了。

看起来我无法使用 MultiBinding 设置 width 属性 - 我的转换器被调用并返回正确的值,但我看不到矩形:

<ListBox x:Name="list" ItemsSource="{Binding Companies}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding CountInvitations}" />
<Rectangle Height="20" Fill="Black">
<Rectangle.Width>
<MultiBinding Converter="{StaticResource myMultiValueConverter}">
<Binding Path="CountInvitations" />
<Binding ElementName="MainLayout" Path="DataContext.MaxCount" />
</MultiBinding>
</Rectangle.Width>
</Rectangle>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

这是转换器:
int CellWidth = 200;
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int count = int.Parse(values[0].ToString());
int maxCount = int.Parse(values[1].ToString());
var width = CellWidth / maxCount * count;
return width;
}

是否无法通过 MultiBinding 设置 Rectangle.Width ?

最佳答案

将转换器更改为 return double 给了我想要的东西:

enter image description here

关于wpf - 为什么我不能在 Rectangle.Width 上使用 IMultiValueConverter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30262612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com