wfp+treeview Style

这段代码展示了如何在WPF中使用TreeView进行数据绑定,通过HierarchicalDataTemplate显示层次结构数据。同时,利用DataTrigger改变TextBlock和Button的前景色、背景色及内容,以及控制元素的可见性,实现了基于数据状态的UI动态更新。
摘要由CSDN通过智能技术生成
<TreeView Background="Transparent" BorderThickness="0" ItemsSource="{Binding Objs}" 
                          ScrollViewer.VerticalScrollBarVisibility="Hidden" Margin="0,0,0,0" Grid.Row="1">
                    <TreeView.ItemTemplate>
                        <HierarchicalDataTemplate ItemsSource="{Binding Children}">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition/>
                                    <RowDefinition/>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition />
                                    <ColumnDefinition />
                                </Grid.ColumnDefinitions>
                                <TextBlock Text="{Binding Header}" Margin="1,0,0,0" FontSize="12">
                                    <TextBlock.Style>
                                        <Style TargetType="TextBlock">
                                            <Style.Triggers>
                                                <DataTrigger Binding="{Binding IsFire}" Value="True">
                                                    <Setter Property="Foreground" Value="Red"/>
                                                </DataTrigger>
                                                <DataTrigger Binding="{Binding IsFire}" Value="False">
                                                    <Setter Property="Foreground" Value="Black "/>
                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </TextBlock.Style>
                                </TextBlock>
                                <Button Grid.Column="1" Width="30" Height="20" Margin="5 0 0 0" FontSize="8" Visibility="{Binding FireVisible}" Cursor="Hand"
                                        Command="{Binding ElementName=win,Path=DataContext.ChangeFireStateCommand}" CommandParameter="{Binding Id}">
                                    <Button.Style>
                                        <Style TargetType="Button">
                                            <Style.Triggers>
                                                <DataTrigger Binding="{Binding IsFire}" Value="True">
                                                    <Setter Property="Background" Value="Red"/>
                                                    <Setter Property="Content" Value="R"/>
                                                </DataTrigger>
                                                <DataTrigger Binding="{Binding IsFire}" Value="False">
                                                    <Setter Property="Background" Value="Green"/>
                                                    <Setter Property="Content" Value="S"/>
                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </Button.Style>
                                </Button>
                                <!--FIRE专用 后续可以有其它的数据源 来展示不同的数据-->
                                <ItemsControl ItemsSource="{Binding FiretState}" Margin="15 0 0 0" Grid.Row="1" Grid.ColumnSpan="2">
                                    <ItemsControl.ItemsPanel>
                                        <ItemsPanelTemplate>
                                            <WrapPanel Orientation="Horizontal" />
                                        </ItemsPanelTemplate>
                                    </ItemsControl.ItemsPanel>
                                    <ItemsControl.ItemTemplate>
                                        <DataTemplate>
                                           <Grid>
												//这里可以定义不同的行 列来展示不同的形式数据
										  </Grid>
                                            <TextBlock Text="{Binding ShowFire}" Foreground="White" Width="10" Height="10" FontSize="8" TextAlignment="Center" VerticalAlignment="Center" Margin="0 0 2 0">
                                                <TextBlock.Style>
                                                    <Style TargetType="TextBlock">
                                                        <Style.Triggers>
                                                            <DataTrigger Binding="{Binding ShowStatus}" Value="R">
                                                                <Setter Property="Background" Value="Red"/>
                                                            </DataTrigger>
                                                            <DataTrigger Binding="{Binding ShowStatus}" Value="S">
                                                                <Setter Property="Background" Value="Yellow"/>
                                                            </DataTrigger>
                                                        </Style.Triggers>
                                                    </Style>
                                                </TextBlock.Style>
                                            </TextBlock>
                                        </DataTemplate>
                                    </ItemsControl.ItemTemplate>
                                </ItemsControl>
                            </Grid>
                        </HierarchicalDataTemplate>
                    </TreeView.ItemTemplate>
                </TreeView>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值