2013-02-18 166 views
0
<Grid x:Name="LayoutRoot"> 
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <Button Content="Button" Width="112" Height="50" Visibility="{Binding IsFocused, ElementName=textBox1,Converter={StaticResource MyConverter1}}"/>   
    </StackPanel> 
    <TextBox Height="57" HorizontalAlignment="Left" Margin="144,103,0,0" Name="textBox1" VerticalAlignment="Top" Width="98" /> 
    <TextBox Height="57" HorizontalAlignment="Left" Margin="277,103,0,0" x:Name="textBox2" VerticalAlignment="Top" Width="88" /> 
    <TextBox Height="57" HorizontalAlignment="Left" Margin="390,103,0,0" x:Name="textBox3" VerticalAlignment="Top" Width="87" />   
</Grid> 

以上代碼我可以得到以下結果。如何將多個元素屬性綁定到wpf中的元素?

enter image description here

如果點擊textBox1的按鈕將隱藏在同一我點擊TextBox2中textBox3,該按鈕會隱藏。

我需要的是,每當我點擊textBox1的texBox3,按鈕應該是隱藏。 我的意思是以上線,

<Button Content="Button" Width="112" Height="50" Visibility="{Binding IsFocused, ElementName=textBox1 or textBox3,Converter={StaticResource MyConverter1}}"/> 

這可能嗎?

回答

1

一種方法是使用MultiBindingIMultiValueConverter實現。

轉換器的重要部分將是這個樣子:

public class MultiConverter : IMultiValueConverter 
{ 
    public object Convert(object[] values, Type targetType, object parameter, 
          CultureInfo culture) 
    { 
     return values.Cast<bool>().Any(x => x) ? 
       Visibility.Collapsed : Visibility.Visible; 
    } 

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

用法是這樣的:

<Button Content="Button" Width="112" Height="50" 
     Margin="196,186,195,75"> 
    <Button.Visibility> 
    <MultiBinding Converter="{StaticResource MultiConverter}"> 
     <Binding ElementName="textBox1" Path="IsFocused" /> 
     <Binding ElementName="textBox3" Path="IsFocused" /> 
    </MultiBinding> 
    </Button.Visibility> 
</Button> 
+0

怎麼也得來同時指定兩個element.I的一個性質不知道,如何可能請幫助我。 – user2082674 2013-02-18 10:44:00

+0

@ user2082674:我不明白你的評論。我的回答就是你所問的:如果textBox1或textBox3具有焦點,則該按鈕將被隱藏。 – 2013-02-18 10:45:56

+0

對不起丹尼爾希爾加斯,我遲到了,我就這麼評論了。現在它運行良好,謝謝你的努力。 – user2082674 2013-02-18 10:52:35

相關問題