Wpf 如何使绑定的网格大小与值成比例?

Wpf 如何使绑定的网格大小与值成比例?,wpf,data-binding,Wpf,Data Binding,我基本上想要宽度1,宽度2的任何值。。。后面有一个星号。 假设宽度1是5,我希望它是5*这样它将是一个成比例的值。我自己也是WPF的新手,但我会这样做: 然后可以在WidthValString上进行绑定: <Grid.ColumnDefinitions> <ColumnDefinition Width="{Binding WidthValString}" /> <ColumnDefinition Width="*"

我基本上想要宽度1,宽度2的任何值。。。后面有一个星号。
假设宽度1是5,我希望它是5*这样它将是一个成比例的值。

我自己也是WPF的新手,但我会这样做:

然后可以在WidthValString上进行绑定:

<Grid.ColumnDefinitions>
            <ColumnDefinition Width="{Binding WidthValString}" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

我假设您将使用ColumnDefinitions执行此操作,因为您不能拥有宽度为5*的网格。据我所知,它必须是一个整数。(使用ColumnDef/RowDefs,您会很好)


如果这不是您想要的,请指定您的问题

这可能有助于澄清是否要使栅格的宽度与布局中较高位置的另一个控件成比例,或者你只是想把网格的宽度分成成比例的列。@estebro我想网格的宽度是成比例的值,而不是普通的值。可能的重复可能的重复现在你已经澄清了你的问题,很明显这只是已经回答的问题的重复。见上面我的评论中提到的其中两个。不要将
Width1
等属性设置为一些数值(例如
double
或您在视图模型中使用的任何值),而是将它们设置为
GridLength
值,并将其设置为您想要的任何值。对不起,我已经编辑了我的问题,是的,您所假设的正是我希望发生的。我尝试了你的解决方案,但它不起作用,主要是因为我认为ColumnDefinition.Width不接受字符串?这很奇怪,在这里可以正常工作。你有错误吗?或者它根本不起作用?好吧,这根本不起作用,您将得到一个
BindingException
,因为
Width
属性是
GridLength
而不是
string
int
。有关更多信息,请参阅: