1.MultiBinding
MultiBinding:多值轉換器,繼承於 System.Windows.Data.IMultiValueConverter接口,綁定多條數據組合為一個數組,按照需求處理數據,並返回需要的值
2.使用
public class MultiStatueConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
<Button Width="60" Height="40"> <Button.Visibility> <MultiBinding Converter="{StaticResource MultiStatueConverter}"> <Binding Path="DataContext.StartHostRounds" RelativeSource="{RelativeSource AncestorType=Window,Mode=FindAncestor}"/> <Binding Path="IsLoginUser"/> </MultiBinding> </Button.Visibility> </Button>
<Binding Path="IsLoginUser"/> 根據當前控件的DataContext查找源
Binding:指定需要綁定的數據源,可通過ElementName,RelativeSource,Source指定綁定的數據源。
ElementName:綁定到元素對象
<Binding Path="Content" ElementName="button"/>
RelativeSource:引用,使用RelativeSource對象指定源對象
<Binding Path="DataContext.StartHostRounds" RelativeSource="{RelativeSource AncestorType=Window,Mode=FindAncestor}"/>
Source:直接指向源對象
<Grid.Resources> <mydata:testData x:Key="testData " /> </Grid.Resources> <Binding Source="{StaticResource testData}" />