2010-06-01 6 views
0

안녕하세요. 나는 관찰 가능한 컬렉션에 바인딩 된 tabcontrol 있습니다.Tabitem.focus는 tabitem 헤더에만 초점을 맞추고 있습니다

나는

var tabitem = (TabItem)this.SingleOrDefault(ti => ti.Name == tabname); 
    tabitem.Focus(); 
    ((UserControl)tabitem.Content).Focus(); 

을하고 시도하고 그렇지 않은 내용에의 TabItem에 초점을 맞추고 있지만, 단지 TabItem의 헤더에서 BTN에처럼은 보이지 않습니다. tabitem 내용은 또 다른 usercontrol입니다.

내가 탭이 실제로 선택되도록, 내용에 포커스를 변경하고

내가 tabcontrol.selecteditem 알고뿐만 아니라 tabheader 수 있지만, 어떻게 나는대로이 어떻게 구현 될 수 IOM 정말 확실하지 observablecollection 실제로 observable 컬렉션을 구현 ObservableTabCollection 호출 한 클래스입니다.

답변

0

는 단순히 메서드 호출

if (AssociatedTabControl != null) AssociatedTabControl.SelectedItem = tabitem; 
0

바인딩 TabControl.SelectedItem ObservableTabCollection의 특정 TabItem과 양방향입니다. 그런 다음 ObservableTabCollection에서 가져온 항목에 바인딩을 설정하여 해당 탭을 표시된 탭으로 만들 수 있습니다. 답변 주셔서 감사합니다 - 내 솔루션

+0

안녕 스테판 내에서 다음 observabletabcollection와

public TabControl AssociatedTabControl; internal void BindToTabControl(TabControl TabCtrl) { AssociatedTabControl = TabCtrl; } 

을 TabControl에 연결하고 것 observabletabcollection의 메소드를 만들되었다. 그 중 일부 예제 코드를 보여줄 수 있습니까? xaml이나 코드 숨김에 있을까요? 코드 숨김에서 선호합니다. – Jakob

+0

왜 코드 숨김을 선호합니까? 실버 라이트를 사용하는 가장 큰 이유 중 하나는 가능한 한 코드 숨김을 사용하지 않아야한다는 것입니다. 또한 어쩌면 당신의 앱이 어떻게 설정되는지 조금은 혼란 스러울 수도 있습니다. 그것의 TabItem을 가져 오는 TabControl은 어디에 있습니까? 다른 컨트롤에 대한 바인딩입니까 아니면 코드 숨김의 속성에 바인딩되어 있습니까? – Stephan

관련 문제