2017-07-17 26 views
0

我想在UWP c#項目的xaml頁面中設置很多綁定,所以我想過綁定到一個數組,但我不知道如何這是因爲{x:Bind示例}樣式的綁定中的元素應該是屬性。c#xaml管理很多綁定(數組的屬性?)

我知道(是正確的嗎?),在C#它是不可能有一個屬性鏈接到一個數組,我的意思是這樣的(即使它是不正確的):

Brush[] _myArray = new Brush[50]; 

    public Brush[n] myArray 
    { 
     get { return _myArray[n]; } 

     set { _myArray[n] = value; } 
    } 

所以我認爲(這是一個可怕的解決方案)關於聲明我的所有變量和屬性,然後將所有屬性添加到列表中,並在c#中將它們作爲列表項列出,如下所示:

Brush _myBrush1; 
    public Brush myBrush1{...} 
    List<Brush> myBrushList = new List<Brush>(); 

    private void initialize() 
    { 
     myBrushList.Add(myBrush1); 
    } 

但隨後與

myBrushlist[0] = new SolidColorBrush(Colors.red); 

什麼也沒有發生,就像我將列表元素(而不是屬性)設置爲新的畫筆。

什麼是正確的方法來做到這一點?如果沒有「正確的方法」我怎樣才能糾正我的代碼?

+0

你試圖讓一個'刷子'數組?將它們綁定到List?然後你的第二個選項已經添加了畫筆。那麼這裏有什麼問題? – AVK

+0

我想將刷子綁定到xaml中某些邊框元素的背景,我將屬性添加到列表中以便能夠使用索引管理它們,因爲它不可能(至少我認爲)綁定數組並管理50個或更多的變量,所有與他們自己的名字將是一個爛攤子,但我不能改變財產的價值與我之前展示的sintax – ek07

+0

它不是一個很好的方式來做你的行爲。如果你想創建一個畫筆集合(比如改變你的主題,改變邊框,背景,前景),我建議你使用'ResourceDictionary',然後綁定來自'ResourceDictionary'的顏色。在UWP中搜索'ResourceDictonary',你會發現很多例子 – AVK

回答

0

至於建議做什麼,我一直在尋找使用資源字典,下面的一些代碼的正確方法:

XAML

... 
<Page.Resources> 
    <SolidColorBrush x:Key="n1" Color="Red"></SolidColorBrush> 
    <SolidColorBrush x:Key="n2" Color="Red"></SolidColorBrush> 
</Page.Resources> 
... 
<Grid Background="{StaticResource n1}"/> 
<Grid Background="{StaticResource n2}"/> 

C#

SolidColorBrush myResource= (SolidColorBrush)this.Resources["n" + Convert.ToString(myIndexInt)]; 
myResource.Color = Colors.Red;