我想尝试Community Toolkit 8.0 的MVVM 部分。
我有一个非常简单的应用程序:
....
d:DataContext="{d:DesignInstance Type=local:MainWindowViewModel}"
....
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="12*" />
</Grid.RowDefinitions>
<Button x:Name="ButtonDirectory" Grid.Row="0" Grid.Column="0" Margin="50 2 0 2" Width="200" Content="List Directory" Command="{Binding ClickButtonListDirectoryCommand, Mode=OneWay}" />
<ListView x:Name="ListViewDirectories" Grid.Row="1" Grid.Column="0" ItemsSource="{Binding DirectoriesNames}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
这是我的视图模型:
public partial class MainWindowViewModel : ObservableObject
{
[ObservableProperty]
List<string> _directoriesNames = new();
[RelayCommand]
private void ClickButtonListDirectory()
{
this.DirectoriesNames.Add("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用而不是列表时,这种构造是有效的string- 但显然,当我的视图组件是 ListView 时,我想使用类似列表的东西。
其directoriesNames本身已更新(在调试器中看到),但它未显示在视图中 ( …