none
MultiBinding 的问 RRS feed

  • 问题

  •  <!--竖线-->
                           
                            <Rectangle x:Name="vLine" Grid.Column="0"   VerticalAlignment="Stretch"
                                        Fill="#FF678B03" StrokeThickness="0" SnapsToDevicePixels="true" MinWidth="1">
                                <Rectangle.Width >
                                    <!--<Binding   Mode="OneWay" IsAsync="True"
                                Converter="{StaticResource vertLineConv}"
                                RelativeSource="{RelativeSource
                                    AncestorLevel=1,
                                    AncestorType={x:Type TreeViewItem}}"/>-->
                                    <MultiBinding Converter="{StaticResource vertLineConv}"  >
                                        <Binding  RelativeSource="{RelativeSource AncestorLevel=1,AncestorType={x:Type TreeViewItem}}"/>
                                        <Binding Path="Items"  
                                                    RelativeSource="{RelativeSource AncestorLevel=1,AncestorType={x:Type TreeViewItem}}"/>
                                    </MultiBinding>
                                </Rectangle.Width>
                            </Rectangle>

    	public class VertLineConv : IMultiValueConverter,IValueConverter
    	{
    
            public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                              return 4;
                    }
    
            public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
            {
                throw new NotImplementedException();
            }
    }}
    返回值一直没用不知道为什么,

    Swat

    2014年4月24日 13:53

答案

  • 因为绑定到的是Rectangle.Width属性,所以返回值必须是double,如果直接return 4;返回值是int,系统是不会自动转换成double的,所以无效,你试一下改成return (double)4;或者return 4.0; 就会发现绑定起作用了。
    2014年4月25日 10:48