DataBinding - 带有XAML和WCF的Silverlight - 基础知识

时间:2011-04-27 17:47:21

标签: silverlight wcf xaml data-binding

我已经设置了简单的场景来了解XAML中的数据绑定。经过一番思考后,我得出结论认为,随着项目的进展,这将是必不可少的,所以我想学习一些基础知识并对其进行研究。

我有使用DataContract的Setup Simple OperationContract将数据从服务器推送到客户端:

    [DataContract]
public class TestData : INotifyPropertyChanged
{
    private string _testDataA;
    [DataMember]
    public string TestDataA
    {
        get { return _testDataA; }
        set
        {
            _testDataA = value;
            NotifyPropertyChanged("TestDataA");
        }
    }

    private string _testDataB;
    [DataMember]
    public string TestDataB
    {
        get { return _testDataB; }
        set
        {
            _testDataB = value;
            NotifyPropertyChanged("TestDataA");
        }
    }

    //public IDuplexClient RoomCallbackChannel { get; set; }
    public void NotifyPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

        [OperationContract]
    public ObservableCollection<TestData> PushTestDataToClient()
    {
        ObservableCollection<TestData> testData = new ObservableCollection<TestData>();
        testData.Add(new TestData { TestDataA = "testDataA1", TestDataB = "testDataB1" });

..这里添加了一些不加重复的数据..

        return testData;
    }

我已将简单的DataGrid添加到我的视图中。

而我用C#代码:

dataGrid1.ItemsSource = e.Result

完美无缺。但那不是重点。我想用XAML绑定该数据。

我试着这样做:

dataGrid1.DataContext = e.Result

然后:

ItemsSource="{Binding TestDataA}"

和我的Model类的其他组合。

这可能是一个愚蠢而简单的问题。但我真的无法找到,任何关注最基本的事情的简单例子。如何使用XAML绑定数据源中的数据?它是如何工作的?如何公开XAML中可用的数据?

2 个答案:

答案 0 :(得分:2)

这应该是一个完整的教程来研究MVVM数据绑定http://www.silverlight.net/learn/tutorials/silverlight-4/using-the-mvvm-pattern-in-silverlight-applications/ 希望这会对你有所帮助。

答案 1 :(得分:1)

我猜你错过了带有绑定的列定义。 Here is a really good tutorial专注于XAML,绑定和列。