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ş:
(Dıs)Windows ile Bağlama bluetooth cih...
GCC: statik bağlama sadece bazı kütüph...
Polimorfik model bağlama...
Android: bir liste Görünümü içinde bir...
Python: Bağlama İlişkisiz bir Yöntem?...