2009-11-12 5 views
0

how doin? 나는 문제가있다. 예를 들어 하나의 텍스트 상자에 여러 객체를 바인딩하고 싶습니다. 많은 작업이있는 목록이 있다고 가정 해 보겠습니다. 각 작업에는 제목이 있습니다.여러 객체의 데이터 바인딩 속성

public class Task 
{ 
public string Title { get; set; } 
[...] 
} 

이제 목록 상자에서 두 가지 작업을 선택하고 싶습니다. 두 작업의 제목이 같으면 텍스트 상자에 제목을 표시해야합니다. 서로 다르면 아무 것도 표시하지 않아야합니다.

사용자가 값을 변경하면 두 작업의 제목을 새 값으로 변경해야합니다.

지금까지 XAML에 바인딩 된 'Title'이라는 새 속성을 만들었습니다. 2 가지 문제가 있습니다.

  1. 그리드의 DataContext를 설정하면 프로그램은 'Title'을 한 번만 읽습니다. datacontext를 null로 설정하고 Task 클래스로 다시 설정하면 다시 작동합니다 (추한 것).

  2. 제목을 변경하면 목록 상자에서 즉시 변경되지 않습니다. 목록 상자에서 작업 목록을 다시 읽는 경우에만 제대로 표시됩니다.

public string Title 
{ 
    get 
    { 
     string title = Tasks[0].Title; 

     for (int i = 1; i < Tasks.Count; i++) 
     { 
      if (title != Tasks[i].Title) 
       return ""; 
     } 

     return title; 
    } 
    set 
    { 
     foreach (Task task in Tasks) 
      task.Title = value; 
    } 
} 

는 당신의 도움을

인사말 stfx

답변

0

사용하십시오 MultiValueConverter을 주셔서 감사합니다. 그 목적은 다중 바인딩 (MultiBinding 객체)을 지원하는 변환기를 구현하는 것이므로 하나 이상의 작업에 바인딩 할 수 있습니다.

관련 문제