我已經寫了一個方法,它發送一個UDP廣播並接收一個循環中的結果,並立即寫入List<String>
。由於我使用ReceiveAsync()
,它正在運行異步。UWP - 從正在運行的異步方法刷新ListView
我的問題是:如何在每次循環向我的列表添加字符串時在我的UI中刷新ListView。所以我希望結果能夠在列表中顯示在屏幕上。
代碼
do
{
UdpReceiveResult result = await sclient.ReceiveAsync();
ipList.Add(result.RemoteEndPoint.Address.ToString());
// after this step I want the ListView to get refreshed
} while (sclient.Available != 0);
XAML ListView控件代碼隱藏XAML
<ListView x:Name="lbIps" HorizontalAlignment="Left" Height="174"
Margin="450,151,0,0" VerticalAlignment="Top" Width="298" />
代碼
public async void btnBroadcast_Click(object sender, RoutedEventArgs e)
{
await ND2.run();
lbIps1.ItemsSource = ND2.ipList;
}
你如何顯示ListView?如果你將你的UI綁定到ipList,你可能只需要在列表更新時調用'OnPropertyChanged(「ipList」)'。 – Lithium
在我的MainApp.xaml.cs中運行我的異步UDP方法。完成/取消後,我使用lvIp.ItemsSource = UDPMethodClass.IpList ;.所以它顯示我的任務取消後的結果。 – David
您應該發佈該代碼,並將XAML發佈到希望顯示列表的位置。真的,如果你希望在填充ipList的時候更新它,你應該在XAML中綁定itemsSource並在需要更新時調用'OnPropertyChanged()'。 – Lithium