在Silverlight中,如何根据列表框中选择的项目设置启用按钮的状态?

时间:2011-12-25 20:21:17

标签: silverlight xaml binding mvvm

我有一个对话框,其中包含一个列表框和惯常的ok,cancel按钮。我想设置只有在列表框中的项目被选中时才启用ok按钮的启用状态。我想用绑定而不是后面的代码来做这件事。

我可能一直走错路,但我正试图做类似以下的事情

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

你可能已经看到我不知道“路径”中的内容

1 个答案:

答案 0 :(得分:4)

如果ProjectList是列表框的名称,那么您应该可以使用SelectedItem

您需要通过转换器进行绑定,该转换器检查SelectedItem是否为null并在这种情况下返回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();
    }
}