我有一个 Itemscontrol,用于显示从计时系统发送的开始信息列表。
如果车道号未显示(如果它为空或空白),我需要能够“关闭”/停止显示一组车道信息,然后如果计时器发送信息以重新打开车道然后显示再次数据。
我不能将其设置为仅删除所有内容,因为计时器会不断发送其信息,并且除车道编号之外的所有内容都会再次出现。
是否可以按条件显示/隐藏项目?
目前正在发生的事情
Lanes
1 ------
2 ------
------ <- other info remains
4 ------
我想要发生的事情
Lanes
1 ------
2 ------
4 ------
这是我的项目控制代码示例
<ItemsControl ItemsSource="{Binding CHeat.SwimList}" Margin="10,0" HorizontalAlignment="Left" VerticalAlignment="Top">
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<StackPanel>
<StackPanel Orientation="Horizontal">
<Label Content="Lane" />
<Label Content="Pos" />
<Label Content="Swimmer" />
<Label Content="Club" />
<Label Content="Time" />
</StackPanel>
<ItemsPresenter/>
</StackPanel>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="35" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="150" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="80" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Content="{Binding LaneNumber}" />
<Label Grid.Column="1" Content="{Binding Position}" />
<Label Grid.Column="2" Content="{Binding Swimmer}" />
<Label Grid.Column="3" Content="{Binding Club}" />
<Label Grid.Column="4" Content="{Binding Time}" />
</Grid>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
如果有一种方法我可以Content = ""
根据 LaneNumber 为其他数据设置,那么我相信它可以工作,因为这样我就可以恢复绑定。
我对 WPF 相当陌生,所以额外的细节会很有帮助,非常感谢!