SORU
10 Aralık 2008, ÇARŞAMBA


DataTrigger nerede değeri null DEĞİL mi?

Eğer değer NULL olup olmadığını denetler ve bir şeyler yapmak konusunda bir pasör yapabilirim biliyorum. Örnek:

<TextBlock>
  <TextBlock.Style>
    <Style>
      <Style.Triggers>
        <DataTrigger Binding="{Binding SomeField}" Value="{x:Null}">
          <Setter Property="TextBlock.Text" Value="It's NULL Baby!" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </TextBlock.Style>
</TextBlock>

Ama nasıl kontrol edebilirim "" değeri olarak "NULL" veya "= 3" değil mi? Bu mümkün XAML?

Sonuçlar:Cevaplarınız için teşekkürler... değer bir dönüştürücü yapabileceğimi biliyordum kod girmeme gerek ki, o zaman umduğum gibi saf XAML olmaz anlamına gelir). Ancak, "saf olarak XAML. yapamayacağın hiçbir soruya etkili bir cevap yok Cevap seçilmiş, ancak, muhtemelen en iyi yolu gösteriroluşturunböyle bir işlevsellik. İyi buluyorum.

CEVAP
10 Aralık 2008, ÇARŞAMBA


Bunun için bir İValueConverter kullanabilirsiniz:

<TextBlock>
    <TextBlock.Resources>
        <conv:IsNullConverter x:Key="isNullConverter"/>
    </TextBlock.Resources>
    <TextBlock.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding SomeField, Converter={StaticResource isNullConverter}}" Value="False">
                    <Setter Property="TextBlock.Text" Value="It's NOT NULL Baby!"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBlock.Style>
</TextBlock>

Nerede İsNullConverter başka bir yerde (ve dönş başvuru için kendi ad set) tanımlanır:

public class IsNullConverter : 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 InvalidOperationException("IsNullConverter can only be used OneWay.");
    }
}

Daha genel bir çözüm her şeye karşı kontrol edebilirsiniz böylece ConverterParameter eşit olup olmadığını kontrol eden bir İValueConverter uygulamak olacaktır, ve sadece boş.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Film Riot

    Film Riot

    16 NİSAN 2006
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008