我有一个二维的对象数组,我基本上想要将每个对象数据绑定到WPF网格中的单元格.目前我有这个工作,但我在程序上做了大部分工作.我创建了正确数量的行和列定义,然后循环遍历单元格并创建控件并为每个控件设置正确的绑定.
至少我希望能够使用模板来指定xaml中的控件和绑定.理想情况下,我想摆脱程序代码,并使用数据绑定完成所有操作,但我不确定这是否可能.
这是我目前使用的代码:
public void BindGrid()
{
m_Grid.Children.Clear();
m_Grid.ColumnDefinitions.Clear();
m_Grid.RowDefinitions.Clear();
for (int x = 0; x < MefGrid.Width; x++)
{
m_Grid.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star), });
}
for (int y = 0; y < MefGrid.Height; y++)
{
m_Grid.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star), });
}
for (int x = 0; x < MefGrid.Width; x++)
{
for (int y = 0; y < MefGrid.Height; y++)
{
Cell cell = (Cell)MefGrid[x, y];
SolidColorBrush brush = new SolidColorBrush(); …Run Code Online (Sandbox Code Playgroud) 我正在创建一个WPF表单.其中一个要求是它具有基于扇区的布局,以便可以将控件明确地放置在扇区/单元之一中.
我在下面创建了一个tic-tac-toe示例来表达我的问题:
有两种类型和一种基本类型:
public class XMoveViewModel : MoveViewModel
{
}
public class OMoveViewModel : MoveViewModel
{
}
public class MoveViewModel
{
public int Row { get; set; }
public int Column { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
表单的DataContext设置为以下实例:
public class MainViewModel : ViewModelBase
{
public MainViewModel()
{
Moves = new ObservableCollection<MoveViewModel>()
{
new XMoveViewModel() { Row = 0, Column = 0 },
new OMoveViewModel() { Row = 1, Column = 0 },
new XMoveViewModel() { Row = 1, Column = 1 …Run Code Online (Sandbox Code Playgroud) grid ×2
wpf ×2
.net ×1
data-binding ×1
dynamic ×1
itemscontrol ×1
templates ×1
wpf-controls ×1