位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 數(shù)據(jù)綁定 靜態(tài)綁定到外部對象

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-09

    通過在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)行處理的。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部