いくつかのエキスパンダービューを含む動的リストを作成しました。
これが私のコードです:
foreach (var TransactionType in WorkflowBase.ViewModel_WFTransaction.AvailableTransactionTypes)
{
ExpanderView newDoc = new ExpanderView();
newDoc.FontSize = 32;
newDoc.Margin = new Thickness() { Bottom = 10, Left = 13, Right = 10, Top = 15 };
newDoc.Header = TransactionType.ProcessName;
foreach (var role in TransactionType.ListOfRoles)
{
TextBlock roleItem = new TextBlock();
roleItem.FontSize = 28;
roleItem.Margin = new Thickness() { Bottom = 4, Left = 4, Right = 4, Top = 4 };
roleItem.Text = role;
roleItem.Tag = TransactionType;
roleItem.Tap += roleItem_Tap;
newDoc.Items.Add(roleItem);
}
NewTransactionsPanel.Children.Add(newDoc);
}
データを表示するためにテキストブロックを配置したエキスパンダービュー内でわかるように、これらのテキストブロックの1つをクリックすると、リスト内のそのアイテムのインデックスとインデックスも取得したいリスト内のエキスパンダー ビュー。これを行う方法がわかりません。
より良いアイデアを提供するために、ロード後のリストの写真を次に示します。
たとえば、「po Mobile」という見出しの下にある「line manager」をクリックすると、その 2 つの項目のリストで line manager テキストブロックのインデックスが必要になり、大きなリストで po mobile のインデックスが必要になります。
これはすべて動的データであるため、リスト内のアイテムの量は変化します。
解決済み : Kookizがくれたアドバイスから、これが私がしたことです。1. 必要なすべてのデータを textblock タグに追加しました。私の他のページの読み込みで
1.
roleItem.Tag =
TransactionType.ListOfRoles.IndexOf(role) + ","
+ WorkflowBase.ViewModel_WFTransaction.AvailableTransactionTypes.IndexOf(TransactionType)
+ "," + TransactionType.FormName
+ "," + TransactionType.ProcessID
+ "," + TransactionType.ActivityID
+ "," + TransactionType.FormID;
2.
this.NavigationService.Navigate(new Uri("/UI/Documents/frmGenericNewTransaction.xaml?Formname="
+ FormName.ToString() +
"&Role=" + roleindex +
"&Processindex="+ processindex +
"&Processid=" + ProcID +
"&Activityid=" + ActID +
"&Formid=" + FormID +
"&Roleid=" + RoleName, UriKind.Relative));
3.
NavigationContext.QueryString.TryGetValue("Activityid", out ActivityID);
NavigationContext.QueryString.TryGetValue("Roleid", out RoleName);
NavigationContext.QueryString.TryGetValue("Formid", out FormID);