我需要一些幫助來解決我有一個簡單的XAML綁定問題。WPF綁定屬性到對象列表
我使用2類MVVM模式。卡和董事會。我已經用卡片創建了一個模型。 Card類由兩個屬性組成。
- 我的卡的價值。
- 我的卡的狀態(下行或上行)。該板包含一張卡片列表。
public class Card
{
public int Value { get; private set; }
public bool Upside { get; set; }
public Card(int value)
{
this.Value = value;
}
}
class Board
{
private List<Card> _cardList = new List<Card>();
public List<Card> CardList
{
get
{
return _cardList;
}
set
{
if (_cardList == value)
{
return;
}
_cardList = value;
raisePropertyChanged("CardList");
}
}
public void Initialize()
{
// Initialization of the card list
}
public void FlipCard()
{
// The rules and actions of my game
}
}
之後,我加入我的銀行卡和主板性能的所有INotifyPropertyChanged
東西。我沒有告訴你代碼保持儘可能清晰。
在我ViewModel
我只揭露這一點:
public Board GameBoard { get; set; }
當然,我有很多其他的方法,屬性和命令,但沒有關於卡。我的比賽和我的牌的規則都在我的板級。我的ViewModel
只暴露了特定於我的XAML設計的類。
在我的XAML文件中,我有這樣的東西。一張卡片是一個簡單的矩形。我只需要使用正確的轉換器將我的卡片的值與Fill屬性綁定。這個想法是我只暴露我的董事會,所以我需要寫點類似於
Fill="{Binding **GameBoard.CardList[0]**
我不會在運行時生成矩形。現在我有4張我的船上,然後我寫了4次矩形碼和硬編碼的4個時間由01結尾的名字,02,03,04,我只是告訴你的01位置:
<Window.Resources>
<me:CardFillConverter x:Key="CardConverter"/>
</Window.Resources>
<Rectangle x:Name="Card01" Fill="{Binding ??? Converter={StaticResource CardConverter}}" ... />
是什麼正確的綁定?
@Alex感謝您的更正 –