我已经设置了简单的场景来了解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中可用的数据?
答案 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,绑定和列。