2008-10-30 3 views
4

목록에서 선택한 항목을 지정하는 DataContext를 프로그래밍 방식으로 어떻게 설정합니까?프로그래밍 방식으로 SelectedItem을 사용하여 DataContext 설정

더 간단히 말해서,이 유형의 바인딩을 코드에서 어떻게 재현합니까?

<StackPanel> 
    <ListBox Name="listBox1" /> 
    <TextBox Name="textBox1" DataContext="{Binding ElementName=listBox1, Path=SelectedItem}" /> 
</StackPanel> 

답변

7

코드에서 참조 할 수 있도록 텍스트 상자의 이름을 설정해야합니다. 그런 다음 개체를 DataContext 속성에 할당 할 수 있어야합니다. 당신은 프로그래밍 방식과 같이 데이터 바인딩을 만들 수 있습니다

Binding binding = new Binding(); 
binding.ElementName = "listBox1"; 
binding.Path = new PropertyPath("SelectedItem"); 
binding.Mode = BindingMode.OneWay; 
txtMyTextBox.SetBinding(TextBox.TextProperty, binding); 
+0

아, 감사합니다. 나는 방금 나 자신을 알아 냈다. 그러나 빠른 대답을 위해 upvote했다! :) – Toji

+0

No prob ... 문법 권리를 얻으려면 나중에 두 가지 편집 ... ㅎ. –

1

와우, 때때로 당신은 단지 응, 올바른 방향으로 여분의 찔러 얻기 위해 밖으로 질문을 주문해야?

이 코드는 나를 위해 작동 :

Binding b = new Binding(); 
b.Path = new PropertyPath(ListBox.SelectedItemProperty); 
b.Source = listBox1; 
textBox1.SetBinding(TextBox.DataContextProperty, b); 
관련 문제