我是C#WPF的新手,我创建了一个Popup
窗口,其中包含DataGrid
来保存一些数据。在某些情况下,如果数据中有任何错误,我想在窗口底部的同一个弹出窗口中显示此错误(参见屏幕截图)。这个想法是用户可以点击确定,消息将消失,再次显示完整的数据网格。
有人知道怎么做吗?
我不希望在单独的窗口中显示另一个弹出消息框,我希望所有消息都显示/堆叠在与datagrid相同的弹出窗口中。
答案 0 :(得分:0)
下面,XAML中有两个网格:主网格包含DataGrid
,另一个网格包含错误UI。错误网格通常已折叠(Visibility
设置为Visibility.Collapsed
)。
当需要显示错误消息时,错误网格的Visibility
设置为Visibility.Visible
,显示网格。当用户点击“关闭”按钮时,错误网格的Visibility
设置为Visibility.Collapsed
。
没有单独的窗口或弹出窗口。一切都包含在主视图中。
XAML:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<DataGrid>
</DataGrid>
<Button Grid.Column="1" Content="Show Message Window" VerticalAlignment="Center" Click="Button_Click_1"/>
<!-- This is the "error grid"-->
<Grid VerticalAlignment="Bottom" Height="Auto"
Background="AliceBlue" Visibility="Collapsed" Name="grdError">
<TextBlock Text="Oops. This is an error!"/>
<Button Content="Dismiss" HorizontalAlignment="Right" Click="Button_Click_3"/>
</Grid>
</Grid>
代码背后:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
grdError.Visibility = Visibility.Visible;
}
private void Button_Click_3(object sender, RoutedEventArgs e)
{
grdError.Visibility = Visibility.Collapsed;
}
}