的整個區域我有一個WPF DataGrid和我想顯示一條消息說「沒有找到記錄」在數據網格的中間。我可以看到這樣的添加一個包含行文字佔用WPF Datagrid的
的方法之一是增加跨越所有列和衛生組織的高度是DataGrid的高度單一的數據行,則居中行的文本。
最主要的進出口與被編程添加行德DataGrid中掙扎。
這是可能的,或者是有更簡單的方式來做到這一點?
的整個區域我有一個WPF DataGrid和我想顯示一條消息說「沒有找到記錄」在數據網格的中間。我可以看到這樣的添加一個包含行文字佔用WPF Datagrid的
的方法之一是增加跨越所有列和衛生組織的高度是DataGrid的高度單一的數據行,則居中行的文本。
最主要的進出口與被編程添加行德DataGrid中掙扎。
這是可能的,或者是有更簡單的方式來做到這一點?
把「沒有找到記錄」消息在TextBlock
,而是和顯示/隱藏TextBlock
取決於DataGrid
是否有數據。
<Grid>
<DataGrid x:Name="_dataGrid" />
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Visibility="{Binding ElementName=_dataGrid, Path=HasItems, Converter={StaticResource BooleanToInverseVisibilityConverter}, Mode=OneWay}">
No Records Found
</TextBlock>
</Grid>
編輯:來源爲BooleanToInverseVisibilityConverter
(我有這樣總是可以給我一堆得心應手轉換器在我的WPF項目)
public class BooleanToInverseVisibilityConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
return (bool) value ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
return null;
}
}
您可以通過編程項目添加到DataGrid這樣的:
myDataGrid.Items.Add(new MyDataGridItem());
如果你已經設置的ItemsSource DataGrid的一些收藏什麼的,你需要修改集合,而不是。你可以是這樣做的:
myCollection.Add(new MyDataGridItem());
myDataGrid.ItemsSource = null;
myDataGrid.ItemsSource = myCollection;
請問這個在DataGrid中顯示中間的消息? – user589195
是的。無論是數據網格與文本塊是一個網格,與文本塊的HorizontalAlignment和VerticalAlignment都是中心,這樣的TextBlock將在中心顯示,覆蓋在DataGrid的頂部。 – Ross