将SelectedItem绑定到VM上的属性

时间:2014-12-24 11:19:24

标签: xaml

在我的Xaml中,我有这个列表视图:

<ListView HorizontalAlignment="Left" 
                      Height="355" 
                      Margin="144,373,0,0" 
                      VerticalAlignment="Top" 
                      Width="154"
                      ItemsSource="{Binding People}"
                      SelectedItem="{Binding SelectedItem}"
                      ItemTemplate="{StaticResource Standard310x260ItemTemplate}"/>

在我的VM上我有这个属性:

private Person _selectedItem;
        public Person SelectedItem
        {
            get
            {
                return _selectedItem;
            }

            set
            {
                if (_selectedItem == value || value == null)
                {
                    return;
                }

                var oldValue = _selectedItem;
                _selectedItem = value;

                // Update bindings, no broadcast
                RaisePropertyChanged("SelectedItem");
            }
        }

我希望每当我点击列表视图中的项目时,我的VM上的SelectedItem属性就会更新。有人能看到我在这里失踪的东西吗?

2 个答案:

答案 0 :(得分:1)

尝试

<ListView SelectedItem="{Binding SelectedItem, Mode=TwoWay}" />

如果它不起作用,请在页面构造函数中添加:

this.DataContext = this;

现在应该可以了。

希望有所帮助:)

答案 1 :(得分:0)

尝试添加IsSynchronizedWithCurrentItem: MSDN