none
请问:如何在XAML中按照条件显示不同的内容(ListBox) RRS feed

  • 常规讨论

  • 代码:
            <ListBox Height="637" HorizontalAlignment="Left" Margin="12,59,0,0" Name="lbxMain" VerticalAlignment="Top" Width="455" >
                <ListBox.ItemTemplate>
                    <DataTemplate>                    
                        <Grid Height="102" Grid.Row="1" Margin="5,10,0,0" Tap="Grid_Tap">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="102" />
                                <ColumnDefinition Width="225*" />
                            </Grid.ColumnDefinitions>   
                            <!--如果是分类({Binding type}=="cat"),就不显示Image-->                   
                            <Image Height="102" Width="102" HorizontalAlignment="Left" Stretch="Fill" VerticalAlignment="Center" />
                            <TextBlock Text="{Binding name}" FontSize="26" Grid.Column="1" Height="30" HorizontalAlignment="Left" VerticalAlignment="Center" Width="354" />
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

    =====
    我想要通过判断{Binding type},如果是它的值为"cat",那么就不显示<Image Height="102" Width="102" HorizontalAlignment="Left" Stretch="Fill" VerticalAlignment="Center" />这个控件

    在XAML中貌似不能直接写条件控制语句,请问应该怎么实现?
    2011年8月3日 8:15

全部回复

  • 你可以直接绑定image元素的Visibility属性到某一个对象属性值是bool,然后后台的时候把判断是否是cat的逻辑写进去。还有种类似的方法就是Visibility = "{Binding type, Converter={****}}",和前面的那种方法是一个意思,***包括了逻辑转换,相关用法可以查查Converter。
    2011年8月4日 1:39
  • 你可以直接绑定image元素的Visibility属性到某一个对象属性值是bool,然后后台的时候把判断是否是cat的逻辑写进去。还有种类似的方法就是Visibility = "{Binding type, Converter={****}}",和前面的那种方法是一个意思,***包括了逻辑转换,相关用法可以查查Converter。
    同意。绑定是个很好用的东西
    2011年8月8日 5:31
  • 就用楼上的方法吧 用Converter 设置显示的区域
    2012年6月14日 2:31