我试图将值“MaxLines”绑定到WP7应用程序的TextBlock的高度属性。有一个转换器绑定,它应该将LineHeight与MaxLines复合并返回预期的高度。我想说的是我想控制在TextBlock中显示的行数。我将如何能够从转换器访问TextBlock的LineHeight属性。如何绑定到控件的属性转换器可以访问控件的其他属性
为了使这个普通的我不想单独保持LineHeights或视图模型访问它们
我试图将值“MaxLines”绑定到WP7应用程序的TextBlock的高度属性。有一个转换器绑定,它应该将LineHeight与MaxLines复合并返回预期的高度。我想说的是我想控制在TextBlock中显示的行数。我将如何能够从转换器访问TextBlock的LineHeight属性。如何绑定到控件的属性转换器可以访问控件的其他属性
为了使这个普通的我不想单独保持LineHeights或视图模型访问它们
看看这篇文章,Silverlight data binding and value converters,他解释了如何在Silverlight数据绑定。在这个例子中,他使用ValueConverter和parametervalue。
我认为这就是你需要的,只需将你的LineHeight绑定到参数。 (可以使用该混合物)
可以使用ConverterParameter:
<TextBlock x:Name="MyTextBlock" Height="{Binding ConverterParameter=Height, ElementName=MyTextBlock, Converter={StaticResource SomeConverter}}" Text="{Binding SomeLongText}" />
或通过整个正文块:
<TextBlock x:Name="MyTextBlock" Height="{Binding Converter={StaticResource ImageFileConverter}, ElementName=DropdownImage}" Text="{Binding SomeLongText}" />
然后,控制器内:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var image = value as TextBlock;
/*do your magic here*/
}
通过ConverterParameter传递对象引用或行高不起作用。应用程序崩溃。 – Prakash 2012-04-16 11:31:33
身高= “{结合LineOneHeight,转换器= {StaticResource的hConverter},ConverterParameter = {绑定的ElementName = dTextblock}}” 这是我怎么绑定。 – Prakash 2012-04-16 11:33:21
尝试此:高度= “{结合转换器= {的StaticResource hConverter},ConverterParameter = {结合LineOneHeight,的ElementName = dTextblock}}” – 2012-04-17 10:57:12
传通过ConverterParameter的对象引用或行高不起作用。应用程序崩溃。 – Prakash 2012-04-16 11:31:17
什么是错误? – 2012-04-16 12:15:18
一个InvalidOperationException在MS.Internal.XamlManagedRuntimeRPInvokes.TryApplyMarkupExtensionValue(对象目标,XamlPropertyToken propertyToken,对象的值) – Prakash 2012-04-16 12:34:02