C# 显示“;未找到任何记录”;WPF数据网格上的消息,当它';它是空的
我试图在我的WPF数据网格中显示一条“找不到记录”消息 我在这里尝试了同一个问题的解决方案: 但到目前为止,我还没有找到一种方法,仅当我的ObservableCollection为空时才添加空行。 这是我的datagrid的代码:C# 显示“;未找到任何记录”;WPF数据网格上的消息,当它';它是空的,c#,wpf,datagrid,wpfdatagrid,C#,Wpf,Datagrid,Wpfdatagrid,我试图在我的WPF数据网格中显示一条“找不到记录”消息 我在这里尝试了同一个问题的解决方案: 但到目前为止,我还没有找到一种方法,仅当我的ObservableCollection为空时才添加空行。 这是我的datagrid的代码: <DataGrid DataContext="{Binding RelativeSource={RelativeSource AncestorType=Window}}" ItemsSource="{Binding Ca
<DataGrid
DataContext="{Binding RelativeSource={RelativeSource AncestorType=Window}}"
ItemsSource="{Binding CameraListObjCode}"
AutoGenerateColumns="False"
Height="145"
HorizontalAlignment="Left"
Margin="62,105,0,0"
Name="dataGrid1"
VerticalAlignment="Top"
Width="361"
IsReadOnly="True">
<DataGrid.Resources>
<conv:IntIsEqualOrGreaterThan x:Key="intIsEqualOrGreaterThan"/>
<conv:IntIsLessThan x:Key="intIsLessThan"/>
<Style TargetType="DataGrid">
<Setter Property="RowDetailsVisibilityMode" Value="Collapsed"></Setter>
<Style.Triggers>
<!--<DataTrigger Binding="{Binding Path=CameraListObjCode.Count, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Converter={StaticResource intIsEqualOrGreaterThan}, ConverterParameter=1}" Value="True">-->
<DataTrigger Binding="{Binding Path=CameraListObjCode.Count, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Converter={StaticResource intIsLessThan}, ConverterParameter=1}" Value="True">
<Setter Property="RowHeight" Value="0"></Setter>
<Setter Property="RowDetailsVisibilityMode" Value="Visible"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Camera Model:" Binding="{Binding CameraModel}" />
<DataGridTextColumn Header="Serial Nr:" Binding="{Binding SerialNr}" />
<DataGridTextColumn Header="IP Address:" Binding="{Binding IPAddress}" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="No Record Found" Visibility="Visible" />
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
触发器都按预期工作。但该消息不会显示。
当我将触发器转换器从“intIsLessThan”更改为“intisequalgreaterthan”时,将显示消息,而不是实际的datagrid条目
所以我猜只缺少空的默认行。但如何添加空的默认行
我希望任何人都能帮我解决这个问题。
我已经搜索了两天来寻找解决方案…我在我的项目中使用了这个:
<Style x:Key="{x:Type ItemsControl}" TargetType="{x:Type ItemsControl}">
<Setter Property="Background" Value="Transparent"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count, RelativeSource={RelativeSource Self}}" Value="0">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="No record found"
FontFamily="{StaticResource FontFamily}"
FontSize="{StaticResource FontSize}"/>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Items, RelativeSource={RelativeSource Self}}" Value="{x:Null}">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="No record found"
FontFamily="{StaticResource FontFamily}"
FontSize="{StaticResource FontSize}"/>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="{x:Type DataGrid}" TargetType="{x:Type DataGrid}" BasedOn="{StaticResource {x:Type ItemsControl}}">
</Style>
我在项目中使用此选项:
<Style x:Key="{x:Type ItemsControl}" TargetType="{x:Type ItemsControl}">
<Setter Property="Background" Value="Transparent"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count, RelativeSource={RelativeSource Self}}" Value="0">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="No record found"
FontFamily="{StaticResource FontFamily}"
FontSize="{StaticResource FontSize}"/>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Items, RelativeSource={RelativeSource Self}}" Value="{x:Null}">
<Setter Property="Background">
<Setter.Value>
<VisualBrush Stretch="None">
<VisualBrush.Visual>
<TextBlock Text="No record found"
FontFamily="{StaticResource FontFamily}"
FontSize="{StaticResource FontSize}"/>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="{x:Type DataGrid}" TargetType="{x:Type DataGrid}" BasedOn="{StaticResource {x:Type ItemsControl}}">
</Style>
如何保持原始背景色?使用视觉画笔将背景覆盖为白色,文本块不会拉伸以使用其背景。对原始帖子进行了很好的调整,如果已经定义了行详细信息,该帖子看起来更粗糙,很快就会崩溃。您的解决方案会断开邮件与各行的连接。您知道如何保持原始背景色吗?使用视觉画笔将背景覆盖为白色,文本块不会拉伸以使用其背景。对原始帖子进行了很好的调整,如果已经定义了行详细信息,该帖子看起来更粗糙,很快就会崩溃。您的解决方案将消息与各行断开连接。