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;        }    }}
原创粉丝点击