2014-07-07 3 views
0

두 개의 TextBox이 있습니다. 두 개의 ObservableCollection이 있습니다. 나는 ObservableCollection의 각각의 속성 값에 TextBox.Text의 각을 결합 할 필요가ObservableCollection에서 클래스의 속성에 TextBox.Text 바인딩

public class ChartData : INotifyPropertyChanged 
{ 
    DateTime _Name; 
    double _Value; 

    #region properties 

    public DateTime Name 
    { 
     get 
     { 
      return _Name; 
     } 
     set 
     { 
      _Name = value; 
      OnPropertyChanged("Name"); 
     } 
    } 

    public double Value 
    { 
     get 
     { 
      return _Value; 
     } 
     set 
     { 
      _Value = value; 
      OnPropertyChanged("Value"); 
     } 
    } 

    #endregion 

    public event PropertyChangedEventHandler PropertyChanged; 

    private void OnPropertyChanged(string propertyName) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 

다음 ObservableCollection는 다음과 같은 유형의 항목이 있습니다. ObservableCollection은 창에있는 다른 컨트롤에 대해서도 DataContext입니다. 하나 이상의 ObservableCollection이 있으므로, DataContext을 창에 설정할 수 없습니다.

새로운 값이 컬렉션에 추가됩니다
ObservableCollection<ChartData>lineSeries1Data = new ObservableCollection<ChartData>(); 
lineSeries1Data.Add(new ChartData() { Name = DateTime.Now, Value = 0.0 }); 

, 나는 TextBox

+0

전자 컬렉션 각 TextBox를 바인딩합니까? 컬렉션에는 여러 항목이있을 수 있습니다. 그래서 나는 당신의 문제에 대한 전반적인 개념을 이해하지 못합니다. 각 특정 TextBox의 DataContext를 특정 Collection으로 설정할 수 있습니다. 어쩌면 당신은 그것을 조금 더 설명해야합니다 ... –

+0

TextBox.Text를 값 속성에 바인딩해야합니다. – Abhishek

+0

나는 내 질문을 수정했습니다. 나는 분명히합니까? – Abhishek

답변

1

당신이 만약 뭔가를 시도 할 수 Value 속성을 보여주고 싶은 :

새로운 데이터를 사용하여 ObservableCollection에 추가 "실제"바인딩이 필요하지 않지만 추가 된 마지막 객체의 값을 표시해야합니다 (의사 코드) :

public string NewItem { get; set+notify; } 

ctor(){ 
    myCollection = new ObservableCollection<T>(); 
    myCollection.CollectionChanged += OnMyCollectionChanged; 
} 

private void OnMyCollectionChanged(object sender, NotifyCollectionChangedEventArgs args) 
{ 
    if (args.Action == NotifyCollectionChangedAction.Add){ 
     var last = args.NewItems.FirstOrDefault(); 
     if (last == null) return; 
     NewItem = last.Value; 
    } 
} 


//XAML: 
<TextBox Text="{Binding NewItem, Mode=OneWay}" /> 
관련 문제