WPF中ListView小Demo的数据绑定应用
2013-03-26 16:37
477 查看
转自:/article/10552107.html
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" );
}
}
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" );
}
}
相关文章推荐
- WPF中ListView小Demo的数据绑定应用.
- WPF中ListView小Demo的数据绑定应用.
- wpf中数据绑定(Datacontext)的应用
- WPF中为ListView动态绑定数据且添加一列复选框
- WPF中在listview进行数据绑定,根据绑定数据调整一列的显示
- WPF命令(Command)介绍、命令和数据绑定集成应用
- WPF——绑定数据库数据(Listview)
- WPF ListView绑定数据实例
- WPF ListView 简单的数据绑定
- 解析WPF绑定层次结构数据的应用详解
- C# WPF TextBox绑定数据的简单应用
- WPF ListView 数据绑定
- WPF ListView 分组数据绑定 TreeView递归数据绑定
- 解析WPF绑定层次结构数据的应用详解
- WPF ListView点击删除某一行并获取绑定数据
- WPF中listview数据绑定
- VS2008 WPF ListView绑定数据结果DataSet
- wpf绑定用户控件及listview(gridview)数据源
- WPF命令(Command)介绍、命令和数据绑定集成应用
- 微软WPF技术应用与实践系列(窗体与导航+容器+模型+数据绑定配多个应用案例)