SORU
9 Mart 2013, CUMARTESİ


Bağlama ConverterParameter

Bu bir yol Style bir:

<Style TargetType="FrameworkElement">
    <Setter Property="Visibility">
        <Setter.Value>
            <Binding Path="Tag"
                RelativeSource="{RelativeSource AncestorType=UserControl}"
                Converter="{StaticResource AccessLevelToVisibilityConverter}"
                ConverterParameter="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Tag}" />                        
        </Setter.Value>
    </Setter>
</Style>

Ben sadece dönüştürücü dersime Tag üst düzey üst ve kontrolü Tag kendisi göndermeniz gerekiyor.

CEVAP
9 Mart 2013, CUMARTESİ


ConverterParameter özelliği bağımlılık bir özellik değildir ve bu nedenle bağlı olabilir.

Ancak alternatif bir çözüm var. multi-value converter MultiBinding yerine normal bir Bağlayıcı kullanabilirsiniz:

<Style TargetType="FrameworkElement">
    <Setter Property="Visibility">
        <Setter.Value>
            <MultiBinding Converter="{StaticResource AccessLevelToVisibilityConverter}">
                <Binding Path="Tag" RelativeSource="{RelativeSource Mode=FindAncestor,
                                                     AncestorType=UserControl}"/>
                <Binding Path="Tag" RelativeSource="{RelativeSource Mode=Self}"/>
            </MultiBinding>
        </Setter.Value>
    </Setter>
</Style>

Çok değer dönüştürücü giriş olarak kaynak değerler dizisi alır:

public class AccessLevelToVisibilityConverter : IMultiValueConverter
{
    public object Convert(
        object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        var visibility = Visibility.Hidden;

        if (values.All(v => (v is bool && (bool)v)))
        {
            visibility = Visibility.Visible;
        }

        return visibility;
    }

    public object[] ConvertBack(
        object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bashirsultani

    bashirsultan

    22 Mart 2010
  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011