在上一篇C#数据绑定中,使用的绑定方式为在C#代码中使用Binding类进行数据绑定。本篇将介绍使用XAML进行绑定。
示例代码如下:
C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.ComponentModel;
namespace WpfApplication1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
int ii = 0;
MyData myData = new MyData();
public MainWindow()
{
InitializeComponent();
//
text1.DataContext = myData;
}
private void button1_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
myData.DisplayNumber =ii.ToString();
ii++;
}
}
public class MyData : INotifyPropertyChanged
{
public void OnPropertyChanged(string propertyName)
{
if(PropertyChanged != null)
{
PropertyChanged(this,new PropertyChangedEventArgs(propertyName));
}
}
private String displayNumber = "14578";
public String DisplayNumber
{
get { return displayNumber; }
set
{
displayNumber = value;
OnPropertyChanged("DisplayNumber");
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
}
XAML代码
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Height="120" HorizontalAlignment="Left" Name="button1" VerticalAlignment="Top" Width="180"
PreviewMouseLeftButtonUp="button1_PreviewMouseLeftButtonUp">
<Canvas VerticalAlignment="Top" Width="180" Height="120">
<Image x:Name="img1" Width="180" Height="120"
PreviewMouseLeftButtonUp="button1_PreviewMouseLeftButtonUp"
></Image>
<TextBlock x:Name="text1" Width="180" Height="60"
PreviewMouseLeftButtonUp="button1_PreviewMouseLeftButtonUp"
Text="{Binding Path=DisplayNumber,UpdateSourceTrigger=PropertyChanged}"
></TextBlock>
</Canvas>
</Button>
</Grid>
</Window>
注意事项:被绑定的目标(如本例中的TextBlock)不能设置初始值。
搜索
复制