silverlight数据绑定

原创 2012年03月21日 12:47:56

(1单项绑定)

XAML

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBox VerticalAlignment="Top" IsReadOnly="True" Margin="5"
TextWrapping="Wrap" Height="120" Width="400"
Text="{Binding}" x:Name="textBox1" />
</Grid>

C#

// Constructor
public MainPage()
{
InitializeComponent();
// Set the data context to a new Recording.
textBox1.DataContext = new Recording("Chris Sells", "Chris Sells Live",
new DateTime(2008, 2, 5));
}
// A simple business object
public class Recording
{
public Recording() { }
public Recording(string artistName, string cdName, DateTime release)
{
Artist = artistName;
Name = cdName;
ReleaseDate = release;
}
public string Artist { get; set; }
public string Name { get; set; }
public DateTime ReleaseDate { get; set; }
// Override the ToString method.
public override string ToString()
{
return Name + " by " + Artist + ", Released: " + ReleaseDate.ToShortDateString();
}
}
(2多项绑定)

XAML

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ComboBox x:Name="ComboBox1" ItemsSource="{Binding}"
Foreground="Black" FontSize="18" Height="50" Width="400"/>
</Grid>
 

C#

public ObservableCollection<Recording> MyMusic = new ObservableCollection<Recording>();
public Page()
{
InitializeComponent();
// Add items to the collection.
MyMusic.Add(new Recording("Chris Sells", "Chris Sells Live",
new DateTime(2008, 2, 5)));
MyMusic.Add(new Recording("Luka Abrus",
"The Road to Redmond", new DateTime(2007, 4, 3)));
MyMusic.Add(new Recording("Jim Hance",
"The Best of Jim Hance", new DateTime(2007, 2, 6)));
// Set the data context for the combo box.
ComboBox1.DataContext = MyMusic;
}
(3使用dataTemplate格式化绑定数据)

XAML

<ComboBox x:Name="ComboWithTemplate" Margin="5"
Width="450" Height="50" HorizontalAlignment="Left"
ItemsSource="{Binding}" Foreground="Black" FontSize="18" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="Artist:" Margin="2" />
<TextBlock Text="{Binding Artist}" Margin="2" />
<TextBlock Text="CD:" Margin="10,2,0,2" />
<TextBlock Text="{Binding Name}" Margin="2" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
(3全局使用)

XAML

<Grid x:Name="LayoutRoot" Background="Transparent">
<!--The UI for the details view-->
<StackPanel x:Name="RecordingDetails">
<TextBlock FontWeight="Bold" Text="{Binding Artist}" Margin="5,0,0,0"/>
<TextBlock FontStyle="Italic" Text="{Binding Name}" Margin="5,0,0,0"/>
<TextBlock Text="{Binding ReleaseDate}" Margin="5,0,0,0" />
</StackPanel>
</Grid>

C#

//ComboWithTemplate.DataContext = MyMusic;
LayoutRoot.DataContext = new CollectionViewSource { Source = MyMusic };
(4  格式化转化绑定数据)

XAML

<phone:PhoneApplicationPage
x:Class="MyExample.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyExample"
...
>
<phone:PhoneApplicationPage.Resources>
<local:StringFormatter x:Key="StringConverter"/>
</phone:PhoneApplicationPage.Resources>
...
<!--ContentPanel - place content here-->
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<ComboBox x:Name="ComboWithTemplate" Margin="5"
Width="450" Height="50" HorizontalAlignment="Left"
ItemsSource="{Binding}" Foreground="Black" FontSize="18" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="Artist:" Margin="2" />
<TextBlock Text="{Binding Artist}" Margin="2" />
<TextBlock Text="CD:" Margin="10,2,0,2" />
<TextBlock Text="{Binding Name}" Margin="2" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<!--The UI for the details view-->
<StackPanel x:Name="RecordingDetails">
<TextBlock Text="{Binding Artist}" />
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding ReleaseDate,
Converter={StaticResource StringConverter},
ConverterParameter=Released: \{0:d\}}" />
</StackPanel>
</StackPanel>
...
</phone:PhoneApplicationPage>

C#

public class StringFormatter : IValueConverter
{
// This converts the value object to the string to display.
// This will work with most simple types.
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
// Retrieve the format string and use it to format the value.
string formatString = parameter as string;
if (!string.IsNullOrEmpty(formatString))
{
return string.Format(culture, formatString, value);
}
// If the format string is null or empty, simply
// call ToString() on the value.
return value.ToString();
}
// No need to implement converting back on a one-way binding
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}


















Silverlight数据绑定

Silverlight数据绑定引擎     (1)Silverlight中数据绑定基于Silverlight数据绑定引擎, (2)该绑定引擎实现从UI元素到CLR源数据对象之间的关联,创建并维护两者之...
  • shuaishenkkk
  • shuaishenkkk
  • 2013年07月16日 09:46
  • 1206

Silverlight商业应用程序开发---从服务器中获取数据之一

异步通信 在Silverlight中所有与服务器间的通信都是异步执行的。因此需要熟悉异步编程。典型的编程模式包括发起一个对服务器的调用,然后等待事件引发通知调用完成。调用在后台线程执行,一旦完成就立即...
  • Andeewu
  • Andeewu
  • 2013年11月14日 11:37
  • 1035

SilverLight连接数据库通过DataSet获取数据

做wpf的项目很久了,第一次用sl做项目,发现sl居然不能连接数据库,还要用wcf或webserve间接连接数据库获取数据,间接连接也行,但是不能用System.Data框架,这就很恼火啦,假如我要移...
  • u010209404
  • u010209404
  • 2016年07月19日 22:29
  • 1118

mvvm Light Toolkit for wpf/silverlight系列之数据绑定

  • 2011年05月06日 16:45
  • 1.38MB
  • 下载

silverlight RadGridView SelectedItems 数据绑定

  • 2012年02月27日 15:12
  • 7.24MB
  • 下载

动态创建类型对象用于界面数据绑定(基于Silverlight)

  • 2009年05月25日 02:15
  • 4.36MB
  • 下载

Mvvm Light Toolkit for wpf/silverlight系列之数据绑定

Mvvm的框架的实现依赖与完善的数据绑定机制,因此熟练使用mvvm就必须熟练掌握WPF/SL的数据绑定机制。下面我们看看mvvm数据绑定与传统的.net控件使用方式有什么不一样;一、给控件属性赋值首先...
  • duanzilin
  • duanzilin
  • 2011年05月06日 11:29
  • 13552

Silverlight数据绑定/IValueConverter

先回忆一下aspx中的处理: 在aspx中,可以直接在后台定义一个变量,然后前台就可以用来将其"绑定"html控件上,比如下面这样,实在是很方便: 代码 using System...
  • jazywoo123
  • jazywoo123
  • 2012年04月17日 20:03
  • 407

Silverlight之MVVM模式简单介绍项目(数据绑定)

很久没有更新博客了,今天向大家介绍一下Silverlight MVVM模式的使用。 MVVM即Model-View-ViewModel模式,它是一种轻量级的,灵活的方式分离数据实体与视图之间的关系,可...
  • aa466564931
  • aa466564931
  • 2011年10月20日 17:01
  • 3234

Silverlight 树形控件用法(数据绑定、右键菜单)

1、树形控件定义如下:
  • wangchongcy
  • wangchongcy
  • 2011年12月16日 16:09
  • 2216
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:silverlight数据绑定
举报原因:
原因补充:

(最多只允许输入30个字)