我不知道我是否会提供足够的信息,但我遇到了问题。 我将ObservableCollection绑定到普通的Listbox,一切正常,但ImageInfo有一个成员(Source),它包含图像所在的位置,我需要Listbox中当前所选项的Source成员。但是,我似乎并不知道从哪里开始。
答案 0 :(得分:1)
也许你的xaml需要像<Image Source="{Binding ElementName=myListbox, Path=SelectedItem.Source}">
这样的东西。与此处https://stackoverflow.com/a/1069389/1606534
答案 1 :(得分:1)
您是否在正常模式下绑定到以下属性:EG:&lt; combobox itemssource = {Binding Listing} /&gt;?如果是这样的话,如果内存服务的话,你真的需要为'selecteditem'公开一个公共属性。根据我对WPF的理解,Observable Collection的真正优势在于实时可以改变的方式,并且在实现INotifyPropertyChanged或INotifyCollectionChanged时您可以注意到这些更改。
<combobox x:Name="mycombo" itemssource="{Binding itemsource}"
selecteditem="{Binding SelectedItem}" />
ViewModel属性:
public string SelectedItem { get; set; }
但是,如果您希望在更改属性时注意到该属性,则需要实现INotifyPropertyChanged。通常情况下,在我工作的工作室中,他们在类的顶部设置一个私有变量,然后在get集中使用它,然后在绑定中使用public属性。
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);
}
}