在我的WPF应用程序中-我向ObservableCollectionvia 添加新项目Button Click Event Handler。现在,我想立即显示此添加的项目,因为它添加到 了我编写的代码的ObservableCollectionvia中Binding,ItemsControl但是它不起作用。谁能解决我的问题。这里的代码是:
.XAML文件
<dxlc:ScrollBox VerticalAlignment="Top">
<ItemsControl x:Name="lstItemsClassM" ItemsSource="{Binding Path=topp, Mode=TwoWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Button Content="{Binding Name}" Tag="{Binding PKId}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</dxlc:ScrollBox>
Run Code Online (Sandbox Code Playgroud)
.CS文件
public ObservableCollection<ClassMM> topp { get; set; }
int dv , startindex, lastindex;
public MainWindow()
{
InitializeComponent();
topp = new ObservableCollection<ClassMM>();
startindex=dv=1;
topp.Add(new ClassMM() { PKId=dv, Name = "Test 1" });
dv=2;
topp.Add(new ClassMM() { PKId = dv, Name = "Test 2" });
dv = 3;
topp.Add(new ClassMM() { PKId = dv, Name = "Test 3" });
dv = 4;
topp.Add(new ClassMM() { PKId = dv, Name = "Test 4" });
lastindex=dv = 5;
topp.Add(new ClassMM() { PKId = dv, Name = "Test 5" });
}
private void Button_Click(object sender, RoutedEventArgs e)
{
lastindex = dv = dv++;
topp.Add(new ClassMM() { PKId = dv, Name = musavebutton.Content.ToString() });
foreach (var jk in topp.ToList())
{
MessageBox.Show(jk.Name);
}
}
public class ClassMM : INotifyPropertyChanged
{
public string _name;
public int _pkid;
public int PKId
{
get { return _pkid; }
set
{
if (value != _pkid)
{
_pkid = value;
NotifyPropertyChanged();
}
}
}
public string Name
{
get { return _name; }
set
{
if (value != _name)
{
_name = value;
NotifyPropertyChanged();
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Run Code Online (Sandbox Code Playgroud)
}
保持您的 XAML 不变,并修改您的 cs,如下所示:
public ObservableCollection<ClassMM> topp { get; set; }
private int dv, startindex, lastindex;
public MainWindow()
{
InitializeComponent();
DataContext = this;
topp = new ObservableCollection<ClassMM>();
startindex = dv = 1;
topp.Add(new ClassMM() {PKId = dv, Name = "Test 1"});
dv = 2;
topp.Add(new ClassMM() {PKId = dv, Name = "Test 2"});
dv = 3;
topp.Add(new ClassMM() {PKId = dv, Name = "Test 3"});
dv = 4;
topp.Add(new ClassMM() {PKId = dv, Name = "Test 4"});
lastindex = dv = 5;
topp.Add(new ClassMM() {PKId = dv, Name = "Test 5"});
}
private void Button_Click(object sender, RoutedEventArgs e)
{
lastindex = dv = dv++;
topp.Add(new ClassMM() { PKId = dv, Name = musavebutton.Content.ToString() });
foreach (var jk in topp.ToList())
{
MessageBox.Show(jk.Name);
}
}
public class ClassMM : INotifyPropertyChanged
{
public string _name;
public int _pkid;
public int PKId
{
get { return _pkid; }
set
{
if (value != _pkid)
{
_pkid = value;
NotifyPropertyChanged("PKId");
}
}
}
public string Name
{
get { return _name; }
set
{
if (value != _name)
{
_name = value;
NotifyPropertyChanged("Name");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(String propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24826 次 |
| 最近记录: |