WPF多值綁定及多值轉換(MultiBinding和IMultiValueConverter)


WPF可以使用MultiBinding進行多值綁定,使用IMultiValueConverter進行多值轉換

例:

(1)轉換器

    public class ContentConverter : IMultiValueConverter
    {
        //源屬性傳給目標屬性時,調用此方法ConvertBack
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            if (values == null || values.Length == 0)
                throw new ArgumentNullException("values can not be null");

            string s = "";
            foreach (var item in values)
            {
                s += System.Convert.ToString(item);
            }

            return s;
        }

        //目標屬性傳給源屬性時,調用此方法ConvertBack
        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            return null;
        }
    }

(2)綁定

    <Window.Resources>
        <local:ContentConverter x:Key="content"></local:ContentConverter>
    </Window.Resources>
    <Grid>
        <Label HorizontalAlignment="Left" Height="23" Margin="243,208,0,0" Foreground="{Binding Status,Converter={StaticResource foreColor},Mode=OneWay}" VerticalAlignment="Top" Width="120">
            <Label.Content>
                <MultiBinding Converter="{StaticResource content}">
                    <Binding Path="Str1"/>
                    <Binding Path="Str2"/>
                    <Binding Path="Str3"/>
                </MultiBinding>
            </Label.Content>
        </Label>
        <Button Content="Button" HorizontalAlignment="Left" Margin="35,44,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
    </Grid>

(3)button click事件

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            window2ViewModel.Str1 = "1";
            window2ViewModel.Str2 = "2";
            window2ViewModel.Str3 = "3";
        }

(4)效果  lable顯示 str1,str2和str3相加后的字符串

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM