我正在使用 Grid 并嘗試在回圈中動態控制。
有3個Grid,點擊Grid3控制元件后,想得到Grid1和Grid2的控制元件值。
請看圖片。
任何幫助表示贊賞。謝謝!

后面的代碼:
Dictionary<string, string[]> myDictionary3 = _Model.getRoomStatusData(_Model.RoomTypesSel, _Model.StartTimeNames);
//Grid 1 x:Name="timelist"
for (int i = 0; i < _Model.StartTimeNames.Length; i )
{
Label time = new Label() { Text = _Model.StartTimeNames[i], WidthRequest = 80 };
timelist.Children.Add(time, i, 0);
}
//Grid 2 x:Name="roomtype"
for (int i = 0; i < roomtypes.Length; i )
{
roomtype.RowDefinitions.Add(new RowDefinition());
Label room = new Label() { Text = _Model.RoomTypesSel[i].Name, WidthRequest = 80 };
roomtype.Children.Add(room, 0, i);
}
List<string[]> roomstatu = new List<string[]>()
{
new string[] {"1","2","3","4","5","6"}, new string[] {"1","2","3","4","5","6"},new string[] {"1","2","3","4","5","6"},new string[] {"1","2","3","4","5","6"},new string[] {"1","2","3","4","5","6"},new string[] {"1","2","3","4","5","6"},new string[] {"1","2","3","4","5","6"},new string[] {"1","2","3","4","5","6"}
};
//Grid 3 x:Name="status"
int index = 0;
foreach (var item in roomstatu)
{
status.RowDefinitions.Add(new RowDefinition());
for (int i = 0; i < item.Length; i )
{
status.ColumnDefinitions.Add(new ColumnDefinition());
Label statuslabel = new Label() { Text = item[i], WidthRequest = 80};
status.Children.Add(statuslabel, i, index);
}
index ;
}
uj5u.com熱心網友回復:
首先,您可以在狀態網格中獲取標簽用戶點擊的索引。然后你可以通過索引獲取標簽的行位置和列位置。
我做了一個示例,效果很好,您可以嘗試以下代碼:
int index = 0;
foreach (var item in roomstatu)
{
status.RowDefinitions.Add(new RowDefinition());
for (int i = 0; i < item.Length; i )
{
status.ColumnDefinitions.Add(new ColumnDefinition());
Label statuslabel = new Label() { Text = item[i], WidthRequest = 80 };
status.Children.Add(statuslabel, i, index);
statuslabel.GestureRecognizers.Add((new TapGestureRecognizer
{
Command = new Command(async (obj) =>
{
Label temp = obj as Label;
Grid gridtemp = temp.Parent as Grid;
int position = gridtemp.Children.IndexOf(temp);
int columnindex = position % timelist.Children.Count;
int rowindex = (position / roomtype.Children.Count) 1;
string timevalue = ((Label)timelist.Children[columnindex]).Text;
string roomtypealue = ((Label)roomtype.Children[rowindex]).Text;
temp.Text = timevalue " " roomtypealue;
}),
CommandParameter = statuslabel,
}));
}
index ;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/510770.html
下一篇:運用D3js開發關系圖譜
