簡體   English   中英

WPF列表框中的兩種方式綁定

[英]Wpf two way binding in listbox

遺憾的是,嘗試在列表框中進行兩種方式的綁定不起作用。 這是xaml代碼:

 <ListBox Margin="19,0,21,149" ItemsSource="{Binding Items}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBox Text="{Binding Path=Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                        <TextBlock Text="{Binding Path=Age}" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

這是viewmodel和個人代碼:

 public class ViewModel
    {
        public ObservableCollection<Person> Items
        {
            get
            {
                return new ObservableCollection<Person>
            {
                new Person { Name = "P1", Age = 1 },
                new Person { Name = "P2", Age = 2 }
            };
            }
        }
    }
public class Person : INotifyPropertyChanged
{
    public string _name;
    public int Age { get; set; }
    public string Name
    {
        get
        {
            return _name;
        }
        set
        {
            if (value != _name)
            {
                _name = value;
                OnPropertyChanged("Name");
            }
        }
    }
    private void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
}

和MainWindow:

 public MainWindow()
        {

            InitializeComponent();
            model = new ViewModel();
            this.DataContext = model;

        }

我不知道出了什么問題,試圖綁定屬性“名稱”,但是它不起作用。 請讓我知道可能有什么問題。

更改就足夠了:

 public class ViewModel
    {
        ObservableCollection<Person> _items = new ObservableCollection<Person>
            {
                new Person { Name = "P1", Age = 1 },
                new Person { Name = "P2", Age = 2 }
            };
        public ObservableCollection<Person> Items
        {
            get
            {
                return _items;
            }
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM