이 경우 ValueConverter
이 필요합니다. This article에 자세히 설명되어 있지만 요약하면 IValueConverter를 구현하는 공용 클래스가 필요합니다. 변환() 메소드에서, 당신이 뭔가를 할 수 있습니다 :
<Window.Resources>
<local:YourValueConverter x:Key="MyValueConverter">
</Window.Resources>
을 그리고 마지막으로, 당신의 바인딩 수정 :
if(!(value is int)) return false;
if(value == -1) return false;
return true;
지금, 당신의 XAML에서, 당신이해야 할
IsEnabled="{Binding myList.SelectedIndex, Converter={StaticResource MyValueConverter}"
당신은 당신이 말은하지 않았다 있습니까
IsEnabled="{Binding ElementName=myList, Path=SelectedIndex, Converter={StaticResource MyValueConverter}"
그래도? 요소 이름을 암시 적으로 경로에 넣을 수는 없습니다 (Window
자체가 DataContext
인 경우 제외). 또한 SelectedItem에 바인딩하고 null이 아닌지 확인하는 것이 더 쉬울 수도 있지만 실제로는 단지 기본 설정입니다. 당신이 당신의 Window
의 상단에, 다른 xmlns
선언에 익숙하지 않은 경우
아, 그리고,
xmlns:local=
와 VS는 다양한 가능성을 묻는 메시지가 표시됩니다 추가 할 수 있습니다. 당신은 당신이 당신이 만든 valueconverter를 넣어 공간을 일치 하나를 찾을 필요가
인덱스는 0이지만 ListBox에도 유효합니다. > -1 인 경우 true를해야합니다. – JustABill
아, 네 말이 맞다. 내 잘못이야, 고마워. – DHN