콤보 박스가 선택되었거나 선택되지 않은 경우 텍스트 상자, 레이블, 텍스트 블록과 같은 컨트롤을 사용하거나 사용하지 않도록 설정하는 방법은 무엇입니까? 예 : 선택한 인덱스가 0보다 큰 경우 다른 컨트롤을 사용 가능하게 설정하십시오. 콤보 상자 선택 기능을 사용하여 컨트롤의 IsEnabled 속성을 바인드하는 방법은 무엇입니까?Xaml의 ComboBox 선택에서 컨트롤 사용/사용 안 함
-1
A
답변
2
IsEnabled
을 ComboBox 속성의 SelectedIndex
에 바인딩하고 IValueConverter
을 사용하여 부울로 변환 할 수 있습니다. 예를 들어, 귀하의 XAML에 (도시 Button
가능) :
<ComboBox x:Name="cmbBox" ItemsSource="{Binding Source={StaticResource DataList}}"/>
<Button Grid.Column="1" IsEnabled="{Binding ElementName=cmbBox, Path=SelectedIndex, Converter={StaticResource IndexToBoolConverter}}"/>
그런 다음 당신은뿐만 아니라 컨버터가 필요 같은 :
public class IndexToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((int)value > 0)
{
return true;
}
else
{
return false;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
또한 리소스로 변환을 선언해야합니다, 당신의 창문에서.
<local:IndexToBoolConverter x:Key="IndexToBoolConverter"/>
1
아마도 이런 식으로 할 것입니다.
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=SelectedItem,
ElementName=TheCombo}"
Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<ComboBox x:Name="TheCombo" Width="100">
<ComboBoxItem>Blah</ComboBoxItem>
<ComboBoxItem>Blah</ComboBoxItem>
<ComboBoxItem>Blah</ComboBoxItem>
</ComboBox>
<Button Content="Click Me" Margin="0,10"/>
</StackPanel>
</Grid>
호프가 도움이 되었으면 좋겠다!
관련 문제
- 1. Excel 2007 combobox 사용/사용 안 함
- 2. 부분보기에서 컨트롤 사용 안 함
- 3. MPMoviePlayerController에서 컨트롤 사용 안 함
- 4. xaml의 ComboBox 데이터 필터링
- 5. JQuery UI Combobox 사용 안 함
- 6. UISpec4J : Combobox 선택에서 트리거 반환?
- 7. 티타늄의지도 뷰에서 줌 컨트롤 사용 안 함
- 8. CEF에서 브라우저 컨트롤 사용 안 함
- 9. AngularJS UniformJS 선택 컨트롤 업데이트 안 함
- 10. .NET 3.5 차트 컨트롤 사용 안 함
- 11. Asp.net 유효성 검사기 사용 안 함 컨트롤
- 12. 장치 볼륨 컨트롤 사용 안 함
- 13. jQuery를 사용하여 컨트롤 사용 안 함
- 14. get Json에서 컨트롤 사용 안 함
- 15. AVT로 xforms : upload 컨트롤 사용 안 함
- 16. ACTION_VIEW에서 비디오 컨트롤 사용 안 함
- 17. Google지도 embed 사용자 컨트롤 사용 안 함
- 18. XAML의 컨트롤 이름 바꾸기
- 19. 컨트롤 이름이 Datagridview에있는 경우 컨트롤 사용 안 함
- 20. [vaadin 6] [Combobox] 제안이 없다면 제안 상자 표시 안 함
- 21. WPF Combobox selecteditem을 기반으로 한 텍스트 상자 사용 안 함
- 22. ComboBox 컨트롤에서 오른쪽 화살표 키 사용 안 함
- 23. 하나의 선택에서 여러 값을 가진 ExtJs Combobox
- 24. AJAX ComboBox 컨트롤
- 25. Silverlight에서 컨트롤 (ComboBox) 확장하기
- 26. 동적 컨트롤 (combobox + 레이블)
- 27. 모듈 렌더링 안 함
- 28. ListView 스크롤 사용 안 함
- 29. LinkButton을 사용할 때 유효성 검사 컨트롤 사용 안 함
- 30. WPF 명령/명령 바인딩을 기반으로 컨트롤 사용 안 함
당신은 IsEnabled를 바인딩합니다. – Paparazzi
@Paparazzi 질문을 업데이트했습니다. – bill
ComboboxSelection의 'PropertyChanged' 이벤트에서, ** VM **에서 활성화/비활성화하려는 컨트롤의'IsEnabled' 속성에 바인딩 된 다른 속성을 업데이트해야합니다. – Kidiskidvogingogin