C# 如何更新“ObservableCollection”所选项目?
XAML: C: 我使用了VentuzData视图模型。这个。选择了VentuzCollection?.VentuzData?.AddexportSocial;更新所选项目,但当我使用此语句时,它会更新VentuzCollection中的所有对象。我试图做的是,当在第一个列表框中选择一个项目时,我添加到第二个列表框中的任何内容只会在第一个列表框的选定项目中更新。您必须从C# 如何更新“ObservableCollection”所选项目?,c#,wpf,mvvm,C#,Wpf,Mvvm,XAML: C: 我使用了VentuzData视图模型。这个。选择了VentuzCollection?.VentuzData?.AddexportSocial;更新所选项目,但当我使用此语句时,它会更新VentuzCollection中的所有对象。我试图做的是,当在第一个列表框中选择一个项目时,我添加到第二个列表框中的任何内容只会在第一个列表框的选定项目中更新。您必须从 如果您希望每个VentuzSocialManager对象都有一个ObservableCollection实例,否则您将拥有所有
如果您希望每个VentuzSocialManager对象都有一个ObservableCollection实例,否则您将拥有所有VentuzSocialManager对象的一个ObservableCollection实例。是否有意在使用OnPropertyChanged;时不传递属性名称@Kitson88是的,我总是在我的viewmodelbase中使用`OnPropertyChanged[CallerMemberName]字符串propertyName=null。啊,这很公平。我没有看到属性。
<ListBox ItemsSource="{Binding VentuzCollection, Mode=TwoWay}" SelectedItem="{Binding SelectedVentuzCollection, Mode=TwoWay}" ItemTemplate="{StaticResource DataTemplateVentuzCollection}" IsSynchronizedWithCurrentItem="True" HorizontalAlignment="Left" Height="115" VerticalAlignment="Top" Width="116"/>
<ListBox ItemsSource="{Binding SelectedVentuzCollection.VentuzData, Mode=TwoWay}" HorizontalAlignment="Left" Height="126" VerticalAlignment="Top" Width="122" Margin="168,164,0,0" ItemTemplate="{StaticResource DataTemplateVentuzDataCollection}" />
private static ObservableCollection<VentuzSocialManager> _ventuzCollection;
public ObservableCollection<VentuzSocialManager> VentuzCollection
{
get => _ventuzCollection;
set
{
if (_ventuzCollection == value) return;
_ventuzCollection = value;
OnPropertyChanged();
}
}
private static VentuzSocialManager _selectedventuzCollection;
public VentuzSocialManager SelectedVentuzCollection
{
get => _selectedventuzCollection;
set
{
if (_selectedventuzCollection == value) return;
_selectedventuzCollection = value;
OnPropertyChanged();
}
}
public class VentuzSocialManager:ViewModelBase
{
public string Id { get; set; }
private static ObservableCollection<VentuzSocial> _ventuzData;
public ObservableCollection<VentuzSocial> VentuzData
{
get => _ventuzData;
set
{
if (_ventuzData == value) return;
_ventuzData = value;
OnPropertyChanged();
}
}
}
private static ObservableCollection<VentuzSocial> _ventuzData;