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

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

提問人:劉團圓發(fā)布時間:2020-12-09

    通過在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屬性中進行處理的。

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

相關視頻回答
回復(0)
返回頂部