我试图获取一个标签来显示特定文本,同时还绑定到VB.Net代码中的变量。我可以进行绑定,但是无法添加静态文本。
到目前为止,我有:
<Label x:Name="TestLabel" Content="{Binding Path=Row, StringFormat='Row #{0}'}"
HorizontalAlignment="Left"
Height="35"
Margin="203,21,0,0"
VerticalAlignment="Top"
Width="83"
FontSize="18">
Run Code Online (Sandbox Code Playgroud)
与
<Label x:Name="TestLabel" Content="{Binding Path=Row, StringFormat='Row #{0}'}"
HorizontalAlignment="Left"
Height="35"
Margin="203,21,0,0"
VerticalAlignment="Top"
Width="83"
FontSize="18">
Run Code Online (Sandbox Code Playgroud)
和
Public Class Row
Implements INotifyPropertyChanged
Private _Row As Byte
Public Property Row() As Byte
Get
Return _Row
End Get
Set(ByVal value As Byte)
_Row = value
OnPropertyChanged(New PropertyChangedEventArgs("Row"))
End Set
End Property
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Public Sub OnPropertyChanged(ByVal e As PropertyChangedEventArgs)
If Not PropertyChangedEvent Is Nothing Then
RaiseEvent …Run Code Online (Sandbox Code Playgroud) 我编写了一组异步方法来快速处理大量数据库拉取和编译。在大多数情况下,这些工作都很棒,并且真的为我的软件创造了奇迹。然而,最近我遇到了一个关于这些方法的小问题:用户时不时地搞砸,软件在两者之间提取数据的时间框架变得巨大,数据适配器在获取信息之前超时。通常在同步方法中,您会使用 try/catch 来处理此类问题,但我已经尝试过无济于事。有没有办法异步处理异常以简单地作为同步方法抛出,这样我的所有 try/catch 都可以正常工作?
这是我使用的数据适配器异步方法的示例:
private async Task<DataTable> WWQuery2Run
(string A, string B, string C, string D)
{
using ( var conn = new System.Data.SqlClient.SqlConnection(ReportResources.ConnString) )
{
var temp = new DataTable();
var DA = new SqlDataAdapter(string.Format(ReportResources.Instance.CureInfoQueries["WWQuery2"], A, B, C, D), conn);
await Task.Run(() => DA.Fill(temp));
return temp;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
在尝试处理超时异常的所有麻烦之后,我意识到以这种方式工作并不是一个好习惯。我继续添加了一个方法来计算持续时间,然后再进入显示的异步方法并警告用户长度,并为他们提供中止编译的选项。有了这个,我将查询的超时时间增加到一个数量,如果用户希望继续,那么应该涵盖除最坏情况中的最坏情况之外的所有情况。我还在程序中项目的描述中添加了一个计算出的持续时间,以便他们知道在尝试查询和编译之前它已经进行了很长时间。
谢谢@Murad Garibzada的帮助。