2012-04-24 104 views
0

我想要做的是根據Telerik組合框的選擇設置條件可見性觸發器(Silverlight)。我如何告訴它查找是否存在一個值,然後在另一個控件上設置可見性?這個想法是,除非在之前的組合框中選擇了某種東西,否則不同的控件甚至不可見。組合框的條件ChangePropertyAction觸發器

所以像這樣;

<i:Interaction.Triggers> 
    <ei:DataTrigger Value="{x:Null}" Binding="{Binding Text,ElementName=FirstComboBox}"> 
     <ei:ChangePropertyAction TargetName="SecondComboBox" PropertyName="Visibility" Value="Collapsed"/> 
    </ei:DataTrigger> 
    <ei:DataTrigger Value="{A_VALUE_EXISTS_AS_CHOSEN_FROM_COMBO}" Binding="{Binding Text,ElementName=FirstComboBox}"> 
     <ei:ChangePropertyAction TargetName="SecondComboBox" PropertyName="Visibility" Value="Visible"/> 
    </ei:DataTrigger> 
</i:Interaction.Triggers> 

我知道我可以去看看,如果是零,沒有值存在,但一旦選擇從組合框,無論選擇什麼做的,我怎麼能告訴它,如果存在一個值,關火可見的觸發器?

因此,即使更簡單,如果ComboBox1有一個值選擇,ComboBox2變得可見?感謝您節省時間和大腦的力量!

+0

不確定在Silverlight中,但在WPF中它是用轉換器完成的。我把WPF從你的標籤中拿走了。我希望那樣可以。 – Paparazzi 2012-04-24 18:47:22

+0

那麼廢話,我覺得有一個布爾值,我可以綁,基本上說:「雅,我有一些文本在這裏,從組合中選擇」有點像我可以去看看,如果它是:無或無。而且我不介意,WPF和SL xaml在大多數時候大多數時候都是如此相似。謝謝! – 2012-04-24 19:30:08

+0

有一個罐頭布爾可見性。轉換器非常簡單,我會發佈一個。 – Paparazzi 2012-04-24 20:29:44

回答

1
[ValueConversion(typeof(string), typeof(Visibility))] 
public class AuditVisabilityConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     string input = (string)value; 
     if (string.isNullOrEmpty(input)) return Visibility.Visible; 
     else return Visibility.Collapsed; 
    } 
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return string.empty; 
    } 
} 
+0

謝謝我只是坐在這裏,當我看到這個,救了我約5行哈哈,乾杯! :) – 2012-04-24 20:39:22