2012-07-27 42 views
0

我想动态地在userControl上做columnSpan。我创建了转换器类,但它不起作用。你会告诉我如何正确地做到这一点?谢谢。为columnSpan制作转换器

在我的用户代码:

<TextBlock x:Name="txtSumary" Grid.Row="0" Grid.Column="1" Text="{Binding summary}"   
    TextWrapping="Wrap" Style="{StaticResource PhoneTextAccentStyle}" Grid.ColumnSpan="{Binding isSpan, Converter={StaticResource ColumSpanConverter}}" /> 

这是对UserControl.Resources参考

<local:VisibilityConverter x:Key="ColumSpanConverter"/> 

还有就是转换器类:

public class ColumSpanConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    {   
     bool isSpan = (bool)value; 
     return isSpan ? 2 : 0; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     throw new NotSupportedException(); 
    } 
} 

回答

1

该转换器引用错误的转换器:

<local:VisibilityConverter x:Key="ColumSpanConverter"/> 

应该是:

<local:ColumSpanConverter x:Key="ColumSpanConverter" /> 
+0

感谢指出我的错误。另外我发现我应该在Convert函数中返回1而不是0。 – user819774 2012-07-30 16:32:30