WPF数据绑定(3) 绑定到数据库
来源:互联网 发布:白色西服知乎 编辑:程序博客网 时间:2024/05/18 09:03
根据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; } }}