C# WPF:从userControl设置列宽
如何从嵌套的用户控件引用列的宽度 我有一个使用Grid.ColumnDefinitions的网格布局:C# WPF:从userControl设置列宽,c#,wpf,C#,Wpf,如何从嵌套的用户控件引用列的宽度 我有一个使用Grid.ColumnDefinitions的网格布局: <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> 这些列包含用户控件: <u:box Grid.Column:0 x:Name="one" Count="{
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
这些列包含用户控件:
<u:box Grid.Column:0 x:Name="one" Count="{Binding Path=Count}">
<u:box Grid.Column:1 x:Name="two" Count="{Binding Path=Count}">
我在userControl中有一个变量“Count”,用于设置要显示的元素数量。
如果Count=1,我想将第二个userControl的列定义设置为“0”。让它看起来不那么显眼。如果Count=0,则bot width应设置为“0”;如果Count=2,则不应将列宽设置为0。实现结果的一种可能方法是为网格指定一个明确的名称,并设置一个多值转换器来处理宽度的大小调整 绑定到计数时将使用多值转换器。 第一个绑定将接受实际计数。 第二个绑定应采用定义列的指示符值,例如字符串值(“一”、“二”、“三”)。 第三个绑定应该使用网格名称绑定到实际网格
<u:box Grid.Column:0 x:Name="one">
<u:box.Count>
<MultiBinding Converter="{StaticResource myNameConverter}"
ConverterParameter="one">
<Binding Path="Count"/>
<Binding ElementName="GridName"/>
</MultiBinding>
</u:box.Count>
</u:box>
在多值转换器中使用这三个值时,您应该有足够的信息来确定网格列的大小
希望这有帮助。我是否必须在列定义的定义中将多值转换器设置为?我已更新了注释,以显示投标示例。