WPF中ListView小Demo的数据绑定应用.
2007-05-10 16:51
537 查看
WPF中的数据绑定非常的好用,下面的例子可以说明这点.
我们在Xaml代码中创建一个ListView
我们设置ListView中的样式绑定为静态绑定
分别定义三个列用来绑定数据ID,Name,Balance
代码如下:
<ListView
Name="listView"
ItemContainerStyle="{StaticResource ItemContStyle}"
ItemsSource="{Binding}"
>
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}" />
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Balance" Width="140">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Balance}" TextAlignment="Right" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
我们在资源中增加下列代码:
<Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}">
<Style.Resources>
<LinearGradientBrush x:Key="ProfitBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.1" Color="#AA00CC00" />
<GradientStop Offset="0.8" Color="#55008800" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="LossBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.1" Color="#AACC0000" />
<GradientStop Offset="0.8" Color="#55880000" />
</LinearGradientBrush>
<local:NumberToPolarValueConverter x:Key="PolarValueConv" />
</Style.Resources>
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Style.Triggers>
<DataTrigger Binding="{Binding Balance, Converter={StaticResource PolarValueConv}}" Value="+1">
<Setter Property="Background" Value="{StaticResource ProfitBrush}" />
</DataTrigger>
<DataTrigger Binding="{Binding Balance, Converter={StaticResource PolarValueConv}}" Value="-1">
<Setter Property="Background" Value="{StaticResource LossBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>
在window中增加:
xmlns:local="clr-namespace:HighlightingItemsInWPFListView"
在窗体后台代码处增加下列代码:
public Window1()
{
InitializeComponent();
this.listView.DataContext = CreateDataTable();
}
DataTable CreateDataTable()
{
DataTable tbl = new DataTable( "Customers" );
tbl.Columns.Add( "ID", typeof( int ) );
tbl.Columns.Add( "Name", typeof( string ) );
tbl.Columns.Add( "Balance", typeof( decimal ) );
tbl.Rows.Add( 1, "John Doe", 100m );
tbl.Rows.Add( 2, "Jane Dorkenheimer", -209m );
tbl.Rows.Add( 3, "Fred Porkroomio", 0m );
tbl.Rows.Add( 4, "Mike Spike", 550m );
tbl.Rows.Add( 5, "Doris Yakovakovich", 0m );
tbl.Rows.Add( 6, "Boris Zinkwolf", -25m );
return tbl;
}
创建一个类,用来管理调用的资源,代码如下:
[ValueConversion( typeof( object ), typeof( int ) )]
public class NumberToPolarValueConverter : IValueConverter
{
public object Convert(
object value, Type targetType,
object parameter, CultureInfo culture )
{
double number = (double)System.Convert.ChangeType( value, typeof(double) );
if( number < 0.0 )
return -1;
if( number == 0.0 )
return 0;
return +1;
}
public object ConvertBack(
object value, Type targetType,
object parameter, CultureInfo culture )
{
throw new NotSupportedException( "ConvertBack not supported" );
}
}
我们在Xaml代码中创建一个ListView
我们设置ListView中的样式绑定为静态绑定
分别定义三个列用来绑定数据ID,Name,Balance
代码如下:
<ListView
Name="listView"
ItemContainerStyle="{StaticResource ItemContStyle}"
ItemsSource="{Binding}"
>
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding ID}" />
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Balance" Width="140">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Balance}" TextAlignment="Right" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
我们在资源中增加下列代码:
<Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}">
<Style.Resources>
<LinearGradientBrush x:Key="ProfitBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.1" Color="#AA00CC00" />
<GradientStop Offset="0.8" Color="#55008800" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="LossBrush" StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Offset="0.1" Color="#AACC0000" />
<GradientStop Offset="0.8" Color="#55880000" />
</LinearGradientBrush>
<local:NumberToPolarValueConverter x:Key="PolarValueConv" />
</Style.Resources>
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Style.Triggers>
<DataTrigger Binding="{Binding Balance, Converter={StaticResource PolarValueConv}}" Value="+1">
<Setter Property="Background" Value="{StaticResource ProfitBrush}" />
</DataTrigger>
<DataTrigger Binding="{Binding Balance, Converter={StaticResource PolarValueConv}}" Value="-1">
<Setter Property="Background" Value="{StaticResource LossBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>
在window中增加:
xmlns:local="clr-namespace:HighlightingItemsInWPFListView"
在窗体后台代码处增加下列代码:
public Window1()
{
InitializeComponent();
this.listView.DataContext = CreateDataTable();
}
DataTable CreateDataTable()
{
DataTable tbl = new DataTable( "Customers" );
tbl.Columns.Add( "ID", typeof( int ) );
tbl.Columns.Add( "Name", typeof( string ) );
tbl.Columns.Add( "Balance", typeof( decimal ) );
tbl.Rows.Add( 1, "John Doe", 100m );
tbl.Rows.Add( 2, "Jane Dorkenheimer", -209m );
tbl.Rows.Add( 3, "Fred Porkroomio", 0m );
tbl.Rows.Add( 4, "Mike Spike", 550m );
tbl.Rows.Add( 5, "Doris Yakovakovich", 0m );
tbl.Rows.Add( 6, "Boris Zinkwolf", -25m );
return tbl;
}
创建一个类,用来管理调用的资源,代码如下:
[ValueConversion( typeof( object ), typeof( int ) )]
public class NumberToPolarValueConverter : IValueConverter
{
public object Convert(
object value, Type targetType,
object parameter, CultureInfo culture )
{
double number = (double)System.Convert.ChangeType( value, typeof(double) );
if( number < 0.0 )
return -1;
if( number == 0.0 )
return 0;
return +1;
}
public object ConvertBack(
object value, Type targetType,
object parameter, CultureInfo culture )
{
throw new NotSupportedException( "ConvertBack not supported" );
}
}
相关文章推荐
- WPF中ListView小Demo的数据绑定应用.
- WPF中ListView小Demo的数据绑定应用
- 解析WPF绑定层次结构数据的应用详解
- WPF中listview数据绑定
- WPF ListView点击删除某一行并获取绑定数据
- 微软WPF技术应用与实践系列(窗体与导航+容器+模型+数据绑定配多个应用案例)
- WPF命令(Command)介绍、命令和数据绑定集成应用
- WPF——绑定数据库数据(Listview)
- WPF4数据绑定应用之“创建具有多种显示效果的字串”
- WPF ListView 数据绑定
- WPF命令(Command)介绍、命令和数据绑定集成应用
- WPF ListView绑定数据实例
- 解析WPF绑定层次结构数据的应用详解
- WPF ListView 的三种数据绑定方式
- WPF中为ListView动态绑定数据且添加一列复选框
- C#中WPF ListView绑定数据的实例详解
- WPF数据绑定(一):ListView + BindingList实现列表数据绑定
- WPF ListView 简单的数据绑定
- wpf中数据绑定(Datacontext)的应用
- WPF中在listview进行数据绑定,根据绑定数据调整一列的显示