我需要一些帮助来找出我在Silverlight 5中实现MultiBooleanConverter的问题。我有实现,但获取正确的引用会给我带来一些麻烦。Silverlight 5中的PresentationFramework
这是我的初学者代码。
XAML:
<telerikRibbonView:RadRibbonButton.Visibility>
<MultiBinding Converter="{StaticResource MultiBooleanToVisibilityConverter}">
<Binding Path="Path1" />
<Binding Path="Path2" />
</MultiBinding>
</telerikRibbonView:RadRibbonButton.Visibility>
转换器(Credit):我有
class MultiBooleanToVisibilityConverter : IMultiValueConverter
{
public object Convert(object[] values,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
bool visible = true;
foreach (object value in values)
if (value is bool)
visible = visible && (bool)value;
if (visible)
return System.Windows.Visibility.Visible;
else
return System.Windows.Visibility.Collapsed;
}
public object[] ConvertBack(object value,
Type[] targetTypes,
object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
问题是IMultiValueConverter接口驻留在命名空间System.Windows.Data
,它驻留在PresentationFramework
DLL,我无法在我的Silverlight项目中添加为参考,因为它不是针对Silverlight构建的。
我很抱歉,如果我完全失去了明显的东西。我如何在Silverlight中使用IMultiValueConverter?是否有我需要的不同的DLL?
而且,我的所有其他接口实现IValueConverter
这也住在System.Windows.Data
但c:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Libraries\Client\
从System.Windows.Data
DLL拉这不是我需要IMultiValueConverter
大会。然而,具有不明确的System.Windows.Data
命名空间不应该是一个问题,因为我可以使用Alias绑定来解决歧义。我只需要弄清楚如何在Silverlight中获得IMultiValueConverter
。
哦,球......好吧。谢谢(你的)信息! – tnw