C# 數(shù)據(jù)綁定 靜態(tài)綁定到外部對象
通過在XAML中將某個(gè)類指定為一項(xiàng)資源,就可以動態(tài)創(chuàng)建對象實(shí)例。具體的方法就是首先在XAML中添加相應(yīng)的名稱空間,以便可以找到這個(gè)類,然后在XAML的某個(gè)元素中將類聲明為資源。
可在希望進(jìn)行數(shù)據(jù)綁定的對象的父元素中創(chuàng)建資源引用。
試一試丨創(chuàng)建靜態(tài)數(shù)據(jù)綁定:KarliCards,Gui\NumberOfPlayers.cs
在本例中,將新建一個(gè)用來保存Options窗口中ComboBox數(shù)據(jù)的新類,并將其與該控件綁定起來。
(1)在項(xiàng)目中新建一個(gè)類,并將其命名為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,并從中刪除三個(gè)ComboBoxItem。
(5)在其中添加屬性:
ItemsSource="{Binding Source={StaticResource numberOfPlayersData}}"
示例說明
在本例中,我們完成了多項(xiàng)工作。NumbetOfPlayers類繼承自一個(gè)特殊集合ObservableCollection。這個(gè)基類是一個(gè)進(jìn)行過擴(kuò)展的集合,以使其能在WPF中更好地發(fā)揮作用。在該類的構(gòu)造函數(shù)中,我們?yōu)樵摷咸砑恿藥讉€(gè)值。
接下來在Canvas中新建了一個(gè)資源,其實(shí)可在ComboBox的任意父元素中創(chuàng)建這個(gè)資源。一旦在元素中指定了某個(gè)資源,它的所有子元素就都可以使用這一資源。
最后通過ItemsSource設(shè)置了綁定關(guān)系。ItemsSource屬性被設(shè)計(jì)用于在項(xiàng)控件中,為項(xiàng)集合設(shè)置綁定。在綁定中,只需要指定綁定源。綁定目標(biāo)、目標(biāo)屬性和源屬性的設(shè)置都是在ItemsSouree屬性中進(jìn)行處理的。
點(diǎn)擊加載更多評論>>