WPF Converter 使用复杂参数的方法

 

Step 1

在WPF的C#代码文件中给定义复杂类型的变量,并给其赋值;

Sample code: List<User>lsUser=。。。。

Setp 2

在 C#代码对应的XAML 中将此复杂参数定义为资源;

Sample code:

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:c="clr-namespace:SDKSample"
  x:Class="SDKSample.Window1"
  Width="400"
  Height="280"
  Title="MultiBinding Sample">
        
  <Window.Resources>
    <c:lsUser x:Key="userList"/>
...
 
</Window.Resources>
 
这里的命名空间 C 是你的复杂参数所在的命名空间;

Step 3

  <UserControl.Resources>

    <app:UserManager x:Key="StaticUsers"/>

    <app:UserNameConverter  x:Key="UsrConverter"/>

  </UserControl.Resources>

<TextBox  Text="{Binding XXXX,Converter={StaticResource UsrConverter},

  ConverterParameter={StaticResource userList }}" />

Step 4 Converter 里对参数的使用

public class UserNameConverter : IValueConverter

{

    public object IValueConverter.Convert(object value, Type targetType,object parameter, CultureInfo culture)

    {

      List<User> usrs = parameter as List<User>;

      ...

    }

}

原文地址:https://www.cnblogs.com/quietwalk/p/3363265.html