我的MVVM應用程序有一個小問題。在視圖模型中執行一個函數並實時刷新視圖
我有一個viewmodel函數修改集合。此集合綁定到視圖以顯示數據網格。當用戶點擊一個按鈕時,該功能修改了該集合,但可能需要幾分鐘時間,並且視圖不刷新。
我的問題是我該如何執行此功能來實時刷新視圖?
在另一個程序中,我使用了調度程序,但它是在沒有綁定的視圖後面的代碼中。
感謝
編輯:
型號:
public class Composants : INotifyPropertyChanged
{
private string _nom;
public string Nom
{
get { return _nom; }
set { _nom = value; OnPropertyChanged("Nom"); }
}
}
視圖模型:
public class PageSynchroViewModel : INotifyPropertyChanged
{
public void SynchroniserComposants()
{
foreach (var comp in _selectedVersion.ListeComposants)
{
comp.Nom = "";
}
}
視圖(我不把所有的代碼):
<Page x:Class="Centre_de_synchronisation.Vues.PageSynchro"
[...]
xmlns:app="clr-namespace:Centre_de_synchronisation.Classes" mc:Ignorable="d"
d:DesignHeight="531" d:DesignWidth="778"
Title="PageSynchro" Background="{x:Null}">
<Canvas>
[...]
<DataGrid Name="GridComposants" Style="{StaticResource DatagridStyle}" ItemsSource="{Binding ListeComposants}" AutoGenerateColumns="False" Canvas.Left="12" Canvas.Top="201" Height="285" Width="754" >
<DataGrid.Columns>
<DataGridTextColumn
Header="Nom"
Binding="{Binding Nom}"
Width="150"
IsReadOnly="True"/>
[...]
</DataGrid>
<Button Name="BoutonSynchro" Style="{StaticResource MessageBoxButtonStyle}" Content="Synchroniser" Height="27" Width="107" Command="{Binding BoutonSynchro}" CommandParameter="GridComposants" Visibility="{Binding Etat, Converter={StaticResource VisibilityConverter}}"/>
</Canvas>
幾分鐘*?你能發佈你的代碼嗎? –
幾秒鐘,但用戶點擊「同步」按鈕時沒有任何信息。我在MainWindow上有一個小的加載指示器。當用戶點擊同步按鈕時,PageSynchroViewModel發送消息到MainWindow(使用mvvm指示燈)顯示加載指示器,但不顯示。 – user1069516