Silverlight 5 で MultiBooleanConverter を実装しているときに発生した問題を解決するのに助けが必要です。実装はありますが、適切な参照を取得すると問題が発生します。
初心者向けのコードは次のとおりです。
XAML:
<telerikRibbonView:RadRibbonButton.Visibility>
<MultiBinding Converter="{StaticResource MultiBooleanToVisibilityConverter}">
<Binding Path="Path1" />
<Binding Path="Path2" />
</MultiBinding>
</telerikRibbonView:RadRibbonButton.Visibility>
コンバーター (クレジット):
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
実装されていますが、必要なアセンブリではないdllからプルされています。ただし、あいまいさを解決するために Alias バインディングを使用するだけでよいため、あいまいな名前空間を持つことは問題になりません。Silverlight にアクセスする方法を理解する必要があります。System.Windows.Data
System.Windows.Data
c:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Libraries\Client\
IMultiValueConverter
System.Windows.Data
IMultiValueConverter