private ObservableCollection<classType>_colls;
public ObservableCollection<classType> Colls
{
get {return _colls;}
set { _colls = value; OnPropertyChanged("Colls");}
}
public string _name;
public string Name
{
get { return _name; }
set { _name= value; OnPropertyChanged("Name"); }
}
public string _Id;
public string Id
{
get { return _Id; }
set { _Id= value; OnPropertyChanged("Id"); }
}
목록 컨트롤이 있고 ItemsSource
은 ObservableCollection
으로 바인딩되어 있습니다.WPF에서 목록을 새로 고치는 방법?
값을 편집 한 후에는 컬렉션이 새로 고쳐지지만보기의 속성은 변경되지 않습니다.
classType
2 개 특성 & Id
Name
포함하며 INotifyPropertyChanged
을 연장한다. 그러나 Name
속성의 값은 View에서 영향을받지 않습니다.
viewmodels :
public class ViewModelBase : INotifyPropertyChanged
{
protected virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
public class classType : ViewModelBase
{
public string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; OnPropertyChanged("Name"); }
}
public string _Id;
public string Id
{
get { return _Id; }
set { _Id = value; OnPropertyChanged("Id"); }
}
}
XAML보기 : 아시다시피 뷰 모델이 적절하게 결합 될 때
<ListBox ItemsSource="{Binding Colls,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock
ToolTip="{Binding Name, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
TextTrimming="WordEllipsis"
Text="{Binding Path=Name, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
'updatesourcetrigger = propertychanged'를 (를) 보도록하십시오. 또한,'Twoway'로'Binding'을 설정했는지 확인하십시오. – Gopichandar
예, 역시 그렇게했으나 작동하지 않았습니다. – Dinesh
'ViewModel'의 코드와'DataContext'를 어떻게 할당했는지 보여주세요. – Gopichandar