根据MSDN示例修改.
XMAL文件代码
<Window x:Class="WpfApplication1.Window11"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="Window11" Height="300" Width="300" Loaded="Window_Loaded">
<Window.Resources>
<local:MyConvert x:Key="convert"/>//自定义转换类
<DataTemplate x:Key="Data">//自定义模板
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Path=Address1}"/>
<TextBlock Grid.Column="1" Text="{Binding Path=City}"/>
<TextBlock Grid.Column="2" Background="{Binding Path=ResourceID,Converter={StaticResource convert}}" Text="{Binding Path=ResourceID}" />
</Grid>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox Name="mylist" Height="50" Width="200" ItemsSource="{Binding Path=Book}" ItemTemplate="{StaticResource Data}"/>
</Grid>
</Window>
后台代码
public partial class Window11 : Window
{
public Window11()
{
InitializeComponent();
}
DataSet ds = new DataSet();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string Conn = @"Data Source=.;Initial Catalog=Test;Integrated Security=True";
using (SqlConnection cn = new SqlConnection(Conn))
{
cn.Open();
string sql = "select * from UserAddress";
using (SqlDataAdapter adp = new SqlDataAdapter(sql, cn))
{
adp.Fill(ds,"Book");
}
}
this.mylist.DataContext = ds;//为listbox设置绑定源
}
}
自定义转换类
namespace WpfApplication1//记住命名空间,在XMAL文件中使用该类,必须引入该命名空间
{
public class MyConvert:IValueConverter
{
public object Convert(object value, Type TargetType, object parameter, CultureInfo cultrue)
{
string i = value.ToString();
int numvalue = int.Parse(i);
if (numvalue > 350)
{
return System.Windows.Media.Brushes.Red;
}
else
{
return System.Windows.Media.Brushes.Blue ;
}
}
public object ConvertBack(object value, Type TargetType, object parameter, CultureInfo cultrue)
{
return null;
}
}
}