Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF:从userControl设置列宽_C#_Wpf - Fatal编程技术网

C# WPF:从userControl设置列宽

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的网格布局:

<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>

在多值转换器中使用这三个值时,您应该有足够的信息来确定网格列的大小


希望这有帮助。

我是否必须在列定义的定义中将多值转换器设置为?我已更新了注释,以显示投标示例。