كيفية القيام بما يلي: توفير البيانات لربط في XAML
يناقش هذا الموضوع على الطرق المختلفة التي يمكنك إتاحة البيانات للربط في Extensible Application Markup Language (XAML) ، استناداً إلى احتياجات التطبيق الخاص بك.
مثال
إذا كان لديك وقت تشغيل اللغة العامة (CLR) رمزية وجوه كنت ترغب في ربط من XAML ، طريقة واحدة يمكنك ان تجعل الكائن المتاحة للربط هو تحديد بأنها مورد وتعطيه x:Key. في المثال التالي، لديك Person الكائن مع خاصية سلسلة المسمى PersonName. كائن Person معرف في مساحة اسم تسمى SDKSample.
<Window
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:SDKSample"
SizeToContent="WidthAndHeight"
Title="Simple Data Binding Sample">
<Window.Resources>
<src:Person x:Key="myDataSource" PersonName="Joe"/>
...
</Window.Resources>
يمكنك بعد ذلك الى ربط الكائن في XAML ، كما هو موضح في المثال التالي.
<TextBlock Text="{Binding Source={StaticResource myDataSource}, Path=PersonName}"/>
بدلاً من ذلك، يمكن استخدام ObjectDataProvider فئة كما في المثال التالي.
<ObjectDataProvider x:Key="myDataSource" ObjectType="{x:Type src:Person}">
<ObjectDataProvider.ConstructorParameters>
<system:String>Joe</system:String>
</ObjectDataProvider.ConstructorParameters>
</ObjectDataProvider>
تعريف الربط بنفس الطريقة:
<TextBlock Text="{Binding Source={StaticResource myDataSource}, Path=PersonName}"/>
في هذا المثال وجه الخصوص ، فإن النتيجة واحدة : لديك TextBlock مع محتوى النص Joe. ومع ذلك، ObjectDataProvider فئة يوفر وظائف مثل القدرة على الربط نتيجة الأسلوب. يمكنك اختيار استخدام ObjectDataProvider الفئة إذا كنت تحتاج وظيفة ويوفر.
ومع ذلك، إذا كنت تقوم بربط لكائن تم إنشاؤه مسبقاً أو كنت تحتاج الى تعيين DataContext في التعليمات البرمجية كما في المثال التالي.
Private myDataSet As DataSet
Private Sub OnInit(ByVal sender As Object, ByVal e As EventArgs)
Dim mdbFile As String = Path.Combine(AppDataPath, "BookData.mdb")
Dim connString As String = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", mdbFile)
Dim conn As New OleDbConnection(connString)
Dim adapter As New OleDbDataAdapter("SELECT * FROM BookTable;", conn)
myDataSet = New DataSet()
adapter.Fill(myDataSet, "BookTable")
' myListBox is a ListBox control.
' Set the DataContext of the ListBox to myDataSet
myListBox.DataContext = myDataSet
End Sub
DataSet myDataSet;
private void OnInit(object sender, EventArgs e)
{
string mdbFile = Path.Combine(AppDataPath, "BookData.mdb");
string connString = string.Format(
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", mdbFile);
OleDbConnection conn = new OleDbConnection(connString);
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM BookTable;", conn);
myDataSet = new DataSet();
adapter.Fill(myDataSet, "BookTable");
// myListBox is a ListBox control.
// Set the DataContext of the ListBox to myDataSet
myListBox.DataContext = myDataSet;
}
للوصول إلى XML بيانات لاستخدام الربط XmlDataProvider الفئة, راجع كيفية القيام بما يلي: ربط بيانات XML باستخدام XMLDataProvider واستعلامات XPath. للوصول إلى XML بيانات لاستخدام الربط ObjectDataProvider الفئة, راجع كيفية القيام بما يلي: ربط XDocument ، XElement أو LINQ للحصول على نتائج استعلام XML.
للحصول على معلومات عن الطرق المختلفة التي يمكنك تحديد البيانات التي يتم الربط, راجع كيفية القيام بما يلي: تحديد مصدر الربط. للحصول على معلومات حول ما هي أنواع من البيانات يمكنك ربط أو كيفية تنفيذ بنفسك وقت تشغيل اللغة العامة (CLR) راجع كائنات ، للربط نظرة عامة حول مصادر الربط.