C# 數(shù)據(jù)綁定 靜態(tài)綁定到外部對象
通過在XAML中將某個類指定為一項資源,就可以動態(tài)創(chuàng)建對象實例。具體的方法就是首先在XAML中添加相應的名稱空間,以便可以找到這個類,然后在XAML的某個元素中將類聲明為資源。
可在希望進行數(shù)據(jù)綁定的對象的父元素中創(chuàng)建資源引用。
試一試丨創(chuàng)建靜態(tài)數(shù)據(jù)綁定:KarliCards,Gui\NumberOfPlayers.cs
在本例中,將新建一個用來保存Options窗口中ComboBox數(shù)據(jù)的新類,并將其與該控件綁定起來。
(1)在項目中新建一個類,并將其命名為NumberOfPlayers.cs。
(2)添加如下代碼:
using System.Collections.ObjectModel;
namespace KarliCards.Gui
{
public class NumberOfPlayers : ObservableCollection<int>
{
public NumberOfPlayers ()
: base ()
{
Add(2);
Add(3);
Add(4);
}
}
}
(3)在OptionsWindow.xaml文件中,選擇包含ComboBox的Canvas元素,并將下列代碼添加到其下方,但要在TabControl聲明之前:
<Canvas.Resources〉
<local:NumberOfPlayers x:Key="numberOfPlayersData" />
</Canvas.Resources〉
(4)選擇ComboBox,并從中刪除三個ComboBoxItem。
(5)在其中添加屬性:
ItemsSource="{Binding Source={StaticResource numberOfPlayersData}}"
示例說明
在本例中,我們完成了多項工作。NumbetOfPlayers類繼承自一個特殊集合ObservableCollection。這個基類是一個進行過擴展的集合,以使其能在WPF中更好地發(fā)揮作用。在該類的構造函數(shù)中,我們?yōu)樵摷咸砑恿藥讉€值。
接下來在Canvas中新建了一個資源,其實可在ComboBox的任意父元素中創(chuàng)建這個資源。一旦在元素中指定了某個資源,它的所有子元素就都可以使用這一資源。
最后通過ItemsSource設置了綁定關系。ItemsSource屬性被設計用于在項控件中,為項集合設置綁定。在綁定中,只需要指定綁定源。綁定目標、目標屬性和源屬性的設置都是在ItemsSouree屬性中進行處理的。
點擊加載更多評論>>