2013-10-17 87 views
0

我不知道我是否足夠豐富,但我遇到了問題。 我將一個ObservableCollection綁定到一個正常的Listbox,一切工作正常,但ImageInfo有一個成員(Source),它包含圖像所在的位置,我需要Listbox中當前選定項目的Source成員。然而,我似乎沒有線索從哪裏開始。綁定到Listbox項目的成員

+1

問題現在還不清楚,請添加更多細節 –

+0

你的意思是說,你有ImageInfo類,它有源碼屬性,你想綁定它嗎? –

+0

將SelectedItem綁定到ViewModel的屬性。 –

回答

1

也許你需要在你的xaml如<Image Source="{Binding ElementName=myListbox, Path=SelectedItem.Source}">。與此處綁定相關的其他示例和解釋https://stackoverflow.com/a/1069389/1606534

+0

謝謝,我只是不認爲我可以使用「。」在「SelectedItem.Source」中訪問成員 –

1

您是否正常綁定到屬性,如:EG:< combobox itemssource = {綁定列表} />?如果是這樣的話,如果記憶服務的話,你真的只需要有一個公共財產暴露給'selecteditem'。根據我對WPF的理解,Observable Collection中的實際功能是事情如何實時更改,並且在實現INotifyPropertyChanged或INotifyCollectionChanged時可以注意到這些更改。

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

視圖模型屬性:

public string SelectedItem { get; set; } 

但是如果你想要當它改變時,你需要執行INotifyPropertyChanged要注意你的財產。通常,在我工作的工作室中,他們在類的頂部設置了一個私有變量,然後在獲取集中使用它,然後在綁定中使用公有屬性。

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); 
    } 
} 
相關問題