我有一个带有按钮的主窗口,可以调用另一个对话框:
TableView dialog = new TableView();
dialog.ShowDialog();
在该视图的xaml.cs构造函数中,它看起来像这样:
public TableView()
{
InitializeComponent();
this.tableViewModel = this.DataContext as TableViewModel;
this.tableViewModel.CloseAction += this.Close;
}
当然,这会调用视图模型的构造函数,我有时会遇到异常。我已经在视图模型的构造函数(try{}catch{}
)中处理了这个异常,但是目前TabeView仍然显示(只是看起来很糟糕而没有正确的东西)。为了解决这个问题,我正在使用xaml.cs构造函数:
public TableView()
{
InitializeComponent();
this.tableViewModel = this.DataContext as TableViewModel;
this.tableViewModel.CloseAction += this.Close;
if (this.tableViewModel.ListOfViewModels == null)
this.Close();
}
然后dialog.ShowDialog();
返回错误(尝试显示已关闭的对话框)。我有一个很好的练习方法吗?也许是一种调用this.Close();
的方法,它不会在dialog.ShowDialog();
中引发异常?
答案 0 :(得分:0)
这个问题可以说太宽泛了。你遗漏了很多细节,这为许多可能的解决方案打开了大门。也就是说,我认为有一些基本方法可以解决这个问题:
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$premio=array("$10.000", "$5.000", "$2.000", "No Aplica");
echo "<tr class='posicion'>";
if ($i < 3) {
echo "<td class='line-rows'>" . $premio[$i] . "</td>";
} else {
echo "<td class='line-rows'>" . $premio[3] . "</td>";
}
echo "<td>" . $row["nombre"] . "</td>";
echo "<td>" . $row["puntos_julio"] . "</td>";
echo "<td>" . $row["puntos_agosto"] . "</td>";
echo "<td>" . $row["puntos_septiembre"] . "</td>";
echo "</tr>";
$i++;
}
对象的代码,并在发生异常时让代码不调用TableView
。ShowDialog()
并让对话框显示给用户。 (可选)允许对话框在例如打开对话框之后关闭五秒钟(向用户发出适当的警告,而对话框将关闭)。当然,添加此可选行为将需要视图和视图模型之间的更多协调;你希望视图检查视图模型状态,然后启动一个计时器,之后关闭对话框。以上内容远不是一个全面的列表,但代表了现在代码状态可能是最理想的解决方案。如果您想要更具体的内容,请提供一个好的Minimal, Complete, and Verifiable code example,以清楚地显示您的方案的样子。