2011-12-25 31 views
0

我有一個對話框,其中包含一個列表框和習慣ok,取消按鈕。我只想在列表框中的某個項目被選中時,將ok按鈕的啓用狀態設置爲啓用狀態。我想用綁定而不是後面的代碼來做到這一點。在Silverlight中,如何根據在列表框中選擇的項目來啓用啓用按鈕的狀態?

我可能已經下降了錯誤的路線,但我已經是試圖做類似下面的

IsEnabled="{Binding ElementName=ProjectList, Path=??? }" 

東西正如你可能會看到我不知道會走在「路徑」

回答

4

如果ProjectList是列表框的名稱,那麼您應該可以使用SelectedItem

您需要通過轉換器進行綁定,該轉換器檢查SelectedItem爲空,並在此情況下返回false。

所以,你的XAML變爲:

IsEnabled="{Binding ElementName=ProjectList, Path=SelectedItem, Converter={StaticResource SelectedItemToBool}}" 

和選擇看起來是這樣的:

public class SelectedItemToBool : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     return value != null; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 
+0

優秀的正是我想要的。非常感謝! – John 2011-12-25 20:52:50

+0

我是XAML/Silverlight的新手,這是使平臺易於使用的小事情之一。 感謝您的提示! – JSancho 2013-01-28 17:03:33

相關問題