C#WPF XAML在窗口消息框中

时间:2016-02-26 11:44:16

标签: c# wpf xaml

enter image description here

我是C#WPF的新手,我创建了一个Popup窗口,其中包含DataGrid来保存一些数据。在某些情况下,如果数据中有任何错误,我想在窗口底部的同一个弹出窗口中显示此错误(参见屏幕截图)。这个想法是用户可以点击确定,消息将消失,再次显示完整的数据网格。

有人知道怎么做吗?

我不希望在单独的窗口中显示另一个弹出消息框,我希望所有消息都显示/堆叠在与datagrid相同的弹出窗口中。

1 个答案:

答案 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;
    }
  }