我有一个对话框,其中包含一个列表框和惯常的ok,cancel按钮。我想设置只有在列表框中的项目被选中时才启用ok按钮的启用状态。我想用绑定而不是后面的代码来做这件事。
我可能一直走错路,但我正试图做类似以下的事情
IsEnabled="{Binding ElementName=ProjectList, Path=??? }"
你可能已经看到我不知道“路径”中的内容
答案 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();
}
}