帮助!!!我有一个绑定到可观察集合的网格。当且仅当集合中有项目时,我需要将一行显示为第一个项目:
<Grid x:Name="Broadcast" Opacity="0.85" MouseEnter="Broadcast_MouseEnter" Grid.Row="2" Margin="0,0,0,0" Width="Auto" HorizontalAlignment="Right" RenderTransformOrigin="0,0">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Grid.RenderTransform>
<Border
x:Name="broadcastBorder"
Opacity="0"
VerticalAlignment="Center"
HorizontalAlignment="Center"
BorderThickness="3"
BorderBrush="Black"
Background="White"
CornerRadius="5"
RenderTransformOrigin="0.5,0.5">
<Border.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0" ScaleY="0"/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Border.RenderTransform>
<ListBox Height="100" ItemsSource="{Binding}" x:Name="icAlerts" Grid.Row="1" >
<!--<TextBlock Text="Clear All" />
<Button Tag="" Content="X" Click="DeleteBroadcast_Click" />-->
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Background="Red" x:Name="spAlerts" Margin="10" Orientation="Vertical" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Template>
<ControlTemplate TargetType="ListBox">
<Border>
<ScrollViewer>
<ItemsPresenter/>
</ScrollViewer>
</Border>
</ControlTemplate>
</ListBox.Template>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Rectangle Grid.ColumnSpan="2" Stroke="LightGray" StrokeThickness="2"
RadiusX="15" RadiusY="15" Margin="15"
Height="Auto" Width="Auto">
</Rectangle>
<TextBlock Grid.Column="0" Text="{Binding}" />
<Button Grid.Column="1" Tag="{Binding}" Content="X" Click="DeleteBroadcast_Click"></Button>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Border>
</Grid>
BroadcastMessages = new ObservableCollection<string>();
BroadcastMessages.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(BroadcastMessages_CollectionChanged);
icAlerts.ItemsSource = BroadcastMessages;
如何让第一行显示为&#34;标题&#34;行?
答案 0 :(得分:0)
你确定你不想使用标题行吗?没有太多你无法做到的。 Bellow我在网格中添加了过滤功能,包括文本框,组合框和日期选择器。
如果您仍然希望它在数据行中,那么您可以恢复您的数据,如果有任何数据添加另一行,但“type”属性或某些内容不同。然后您的绑定转换器将根据此“类型”属性更改外观。您将绑定到已排序的集合,以便首先添加行。
答案 1 :(得分:0)
所以我最后在委托调用之前修改了ObservableList。事实证明我们正在逃离Silverlight。 。 。