2013-06-19 5 views
0

내가하고 싶은 것은 내 콤보 상자의 첫 번째 항목을 제목으로 만드는 것입니다. 나는 Google에 나가 IsSynchronizedWithCurrentItem = "True"를 사용할 수 있다는 것을 알아 냈다. 하지만이 문제는 내가 ID를 기반으로 숨기고 표시하는 다른 컨트롤을 가지고있다.콤보 상자의 첫 번째 항목을 콤보 상자의 제목으로 표시하는 방법

XAML : 는 첫 번째 요소에 의해 표시되기 때문에 내가

 <ComboBox Margin="0,0,732,81" HorizontalAlignment="Right" Width="124" VerticalAlignment="Bottom" IsSynchronizedWithCurrentItem="True" 
     ItemsSource="{Binding Path=TransactionTypes}" DisplayMemberPath="Name" SelectedValue="{Binding Path= SelectedTransaction,Mode=TwoWay}" 
     SelectedValuePath="Name" Grid.ColumnSpan="2" /> 

여기 콤보 트랜잭션 여기를 얻을 때까지

 <ComboBox HorizontalAlignment="Left" Margin="10,0,0,81" Width="122" VerticalAlignment="Bottom" IsSynchronizedWithCurrentItem="True" 
     ItemsSource="{Binding Path=Applications}" DisplayMemberPath="Name" SelectedValue="{Binding Path= SelectedApplication,Mode=TwoWay}" 
     SelectedValuePath="Name" /> 

이 좋은 내가 콤보 상자 응용 프로그램에 대한 내 XAML이 있다고 가정하자 (IsSynchronizedWithCurrentItem = "True") 거래 콤보 상자에서 내 세 번째 컨트롤은 내가 아이템을 선택했을 때만 표시하고자하는 그리드입니다 거래 내역은 dis입니다. 기본적으로 재생되지만 선택을 할 때만 페이지로드에 그리드를로드하고 싶지는 않지만 다시 제목을 원합니다.

+0

ComboBox를로드하면 combo.Text = combo.Items [0];라고 말할 수 있습니다. – Dilshod

+0

@Dilshod MVVM을 따르고 있는데 뷰 모델에서 어떻게합니까? –

답변

0

흠,보기 전용 일 뿐이므로 VM을 사용할 필요가 없습니다. 컨트롤을 자체에 바인딩하기 만하면됩니다.

<!-- your settings are omitted, but you should keep them --> 
<ComboBox Text="{Binding SelectedItem.Name, RelativeSource={RelativeSource Self}}" /> 

나는 조금 궁금해서, 당신은 SelectedValue을 사용하고 있습니다. 보통 SelectedItem을 사용하고 있지만 여러 가지 방법이있을 수 있습니다.

관련 문제