绑定到列表框项的成员

本文关键字:成员 列表 绑定 | 更新日期: 2023-09-27 18:36:01

我不知道我是否会提供足够的信息,但我遇到了问题。我将 ObservableCollection 绑定到普通列表框,一切正常,但 ImageInfo 有一个成员(源),其中包含图像所在的位置,我需要列表框中当前选定项的 Source 成员。但是,我似乎不知道从哪里开始。

绑定到列表框项的成员

也许你需要在你的 xaml 中像 <Image Source="{Binding ElementName=myListbox, Path=SelectedItem.Source}"> 这样的东西。此处与绑定相关的其他示例和解释 https://stackoverflow.com/a/1069389/1606534

您是否在正常模式下绑定到如下属性: EG: <组合框项源>? 如果是这样,如果没记错的话,您实际上只需要为"选定项"公开一个公共属性。 根据我对 WPF 的理解,可观察集合的真正力量是事物如何实时更改,在实现 INotifyPropertyChanged 或 INotifyCollectionChanged 时,您可以注意到这些更改。

<combobox x:Name="mycombo" itemssource="{Binding itemsource}" 
          selecteditem="{Binding SelectedItem}" />

视图模型属性:

public string SelectedItem { get; set; }

但是,如果您希望您的属性在更改时被注意到,则需要实现 INotifyPropertyChanged。 通常,在我工作的工作室中,他们在类的顶部设置一个私有变量,然后在get集中使用它,然后在绑定中使用公共属性。

public class example : INotifyPropertyChanged
{
    private string _SelectedItem;

    public string SelectedItem 
    {
        get { return _SelectedItem; }
        set
        {
           _SelectedItem = value;
           RaisePropertyChanged("SelectedItem");
         }
    }
    public event PropertyChangedEventHandler PropertyChanged;
     protected void RaisePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new   System.ComponentModel.PropertyChangedEventArgs(propertyName));
    }
    public void DoSomething()
    {
         Messagebox.Show("I selected: " + SelectedItem);
    }
}