我有一个ErrorControl类来处理发送到此控件的文本,并将其显示在窗口中。随着窗口中的文本,我有一个应该显示的btnOk。所以一个只有标签和按钮的窗口。带有错误的标签显示正常,但按钮不显示。
代码背后的代码: public void showErrorMessage(String error, String title)
{
ErrorControl errorMessage = new ErrorControl();
errorMessage.errStack.Children.Remove(errorMessage.lblError);
errorMessage.lblError.Content = error.ToString();
errorMessage.errStack.Children.Add(errorMessage.lblError);
Window wind = new Window()
{
Content = error,
Title = title,
SizeToContent = SizeToContent.WidthAndHeight,
ResizeMode = ResizeMode.NoResize,
WindowStyle = WindowStyle.ToolWindow
};
wind.ShowDialog();
}
XAML:
<Grid Name="Main">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<StackPanel Name="errStack">
<Label Name="lblError" Content="{Binding Path=ErrorMessage}" />
</StackPanel>
<Button Name="btnOk" Content="Ok" Grid.Row="1" HorizontalAlignment="Center" MinWidth="75" VerticalAlignment="Center" Click="btnOk_Click"/>
</Grid>
</Grid>
这就是我发送错误的方式
String error = "myerror";
ErrorControl errorControl = new ErrorControl();
errorControl.showErrorMessage(error, "Error Message");
为什么我的按钮没有出现在我的窗口中?它在我的xaml中定义。
答案 0 :(得分:2)
您的问题是您将错误文本而不是ErrorControl分配给Window.Content
。
修正:
Window wind = new Window()
{
Content = errorMessage, // << your problem is here
Title = title,
SizeToContent = SizeToContent.WidthAndHeight,
ResizeMode = ResizeMode.NoResize,
WindowStyle = WindowStyle.ToolWindow
};
此外,我想补充一点,您的代码存在设计问题。 showErrorMessage
至少应该是静态的,因此您不必创建ErrorControl并只需调用
ErrorControl.showErrorMessage(error, "Error Message");