WPF绑定各种数据源之object数据源
来源:互联网 发布:软件定制 编辑:程序博客网 时间:2024/04/29 21:33
一、WPF绑定各种数据源索引
WPF 绑定各种数据源之Datatable
WPF绑定各种数据源之object数据源
WPF绑定各种数据源之xml数据源
WPF绑定各种数据源之元素控件属性
Binding的基础可参考WPF 绑定基础
二、WPF绑定各种数据源之object数据源
前台代码:
<Window.Resources>
<Con:BackgroundConverter x:Key=
"BackgroundConverter"
/>
</Window.Resources>
用ListView绑定object数据源
<ListView Height=
"262"
Margin=
"0,0,45,51"
VerticalAlignment=
"Bottom"
ItemsSource=
"{Binding}"
Name=
"listView2"
HorizontalAlignment=
"Right"
Width=
"310"
>
<ListView.View>
<GridView>
<GridViewColumn Header=
"编号"
DisplayMemberBinding=
"{Binding Path=ID}"
Width=
"100"
/>
<GridViewColumn Header=
"姓名"
DisplayMemberBinding=
"{Binding Path=Name}"
Width=
"100"
/>
<GridViewColumn Header=
"年龄"
Width=
"100"
>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Grid.Column=
"1"
Text=
"{Binding Path=Age}"
Foreground=
"{Binding Path=Age, Converter={StaticResource BackgroundConverter}}"
/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
后台代码:
public
class
BackgroundConverter : IValueConverter
{
#region IValueConverter Members
public
object
Convert(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
Color color =
new
Color();
int
num =
int
.Parse(value.ToString());
if
(num > 100)
color = Colors.Yellow;
else
if
(num < 50)
color = Colors.LightGreen;
else
color = Colors.LightPink;
return
new
SolidColorBrush(color);
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
throw
new
NotImplementedException();
}
#endregion
}
下面是Person类
public
class
Person
{
private
string
_ID;
private
string
_name;
private
string
_age;
public
string
ID
{
get
;
set
;
}
public
string
Name
{
get
;
set
;
}
public
int
Age
{
get
;
set
;
}
}
//下面是获得数据源,当然数据源可以是数据库中读出的数据,此处直接创建数据源
//创建数据源,当然也可以从数据库中获得数据源
private
IList<Person> getPersonInfo()
{
IList<Person> pList =
new
List<Person>();
for
(
int
i = 40; i < 60; i++)
{
Person p =
new
Person();
p.ID =
"ID"
+i;
p.Name =
"Nmae"
+i;
p.Age = i+1;
pList.Add(p);
}
return
pList;
}
public
Window1()
{
InitializeComponent();
listView2.DataContext = getPersonInfo();
}
效果图:
2. 使用Object的另一种方式
<Window.Resources>
<Con:BackgroundConverter x:Key=
"BackgroundConverter"
/>
<ObjectDataProvider x:Key=
"myPerson"
ObjectType=
"{x:Type Con:Person}"
MethodName=
"getPersonInfo"
/>
</Window.Resources>
此时的myPerson对象数据源在是Person类中的getPersonInfo方法。
(【补充】如果getPersonInfo在不同的类库中,则用如下方式
<ObjectDataProvider x:Key=
"myPerson2"
ObjectType=
"{x:Type ClassLibrary1:Person}"
MethodName=
"getPersonInfo"
/>
使用,ClassLibrary1是类库的名称。并添加命名空间
xmlns:ClassLibrary1=
"clr-namespace:ClassLibrary1;assembly=ClassLibrary1"
)
<ListView Height=
"262"
Margin=
"0,0,45,51"
DataContext=
"{StaticResource myPerson}"
VerticalAlignment=
"Bottom"
ItemsSource=
"{Binding}"
Name=
"listView2"
HorizontalAlignment=
"Right"
Width=
"310"
>
<ListView.View>
<GridView>
<GridViewColumn Header=
"编号"
DisplayMemberBinding=
"{Binding Path=ID}"
Width=
"100"
/>
<GridViewColumn Header=
"姓名"
DisplayMemberBinding=
"{Binding Path=Name}"
Width=
"100"
/>
<GridViewColumn Header=
"年龄"
Width=
"100"
>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Grid.Column=
"1"
Text=
"{Binding Path=Age}"
Foreground=
"{Binding Path=Age, Converter={StaticResource BackgroundConverter}}"
/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!
0 0
- WPF绑定各种数据源之object数据源
- WPF绑定各种数据源之xml数据源
- WPF 绑定各种数据源之Datatable
- WPF绑定各种数据源之元素控件属性
- WPF绑定数据源之RelativeSource
- WPF绑定XML数据源
- WPF数据源绑定方式
- WPF-DataGrid 绑定数据源
- WPF--MVVM之DataGrid数据源绑定
- WPF\Silverlight 数据源绑定方式
- DataGrid中的子控件Combox之数据源绑定(WPF)
- WPF--MVVM之DataGrid ComboBox数据源绑定枚举
- WPF XAML里绑定数据源有哪几种呢?
- wpf中datagrid绑定数据源发生改变
- 数据源绑定
- WPF中ListView绑定数据源后居中显示
- wpf绑定用户控件及listview(gridview)数据源
- WPF使用 ObjectDataProvider 为方法作为绑定数据源
- 使用Method swizzling方法修改常用函数行为
- log4j配置祥解
- Python类及其定义
- linux入门基础——Vi(Vim)文本编辑器
- android fragment 监听返回键
- WPF绑定各种数据源之object数据源
- 线段树 区间求和 poj 3468 A Simple Problem with Integers
- ATL与COM之间的关系、ATL的特点与基本使用方法
- Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- Android应用程序启动过程源代码分析
- c++的基本语言知识(二)
- Linux电源管理_Wakeup count功能--(三)
- [dp]poj2229 Sumsets
- XML解析---SAX