簡體   English   中英

使用LINQ訪問網格中的TextBlock

[英]Accessing TextBlock in a grid with LINQ

我在XAML網格中動態生成行:

        for (int i = 0; i < AssociatedSteps.Length; i++)
        {
            //if (i == 0 || AssociatedSteps[i].OriginPkg != AssociatedSteps[i-1].OriginPkg)
            //{
            //Define new Row to add
            RowDef = new RowDefinition();
            RowDef.Height = new GridLength(60);

            //Add row definition to Grid
            WorkPackageViewResults.RowDefinitions.Add(RowDef);

            //Define the control that will be added to new row
            Text1 = new TextBlock();
            Text1.Text = AssociatedSteps[i].SF01;
            Text1.Width = Settings.workPackageColumn5Width;
            Text1.TextAlignment = TextAlignment.Center;

            Text2 = new TextBlock();
            Text2.Text = AssociatedSteps[i].SF10;
            Text2.Width = Settings.workPackageColumn5Width;
            Text2.TextAlignment = TextAlignment.Center;

            Text3 = new TextBlock();
            Text3.Text = AssociatedSteps[i].OriginPkg;
            Text3.Width = Settings.workPackageColumn5Width;
            Text3.TextAlignment = TextAlignment.Center;

            Button1 = new Button();
            Button1.Content = AssociatedSteps[i].Description;
            Button1.Width = Settings.workPackageColumn5Width;
            Button1.Click += new RoutedEventHandler(ProgressUpdateButton_Click);
            Button1.Tag = AssociatedSteps[i].StepID;

            //create stackpanel and define which row to add the stackpanel to
            StackP = new StackPanel();
            //StackP.Background = new SolidColorBrush(Colors.Wheat);
            StackP.SetValue(Grid.RowProperty, i);
            StackP.Orientation = Orientation.Horizontal;
            StackP.Margin = new Thickness(0, 0, 0, 0);

            PercentComplete = new TextBlock();
            PercentComplete.Text = (Convert.ToDouble(AssociatedSteps[i].ToDateQty) / Convert.ToDouble(AssociatedSteps[i].MTOQty)).ToString();
            PercentComplete.Width = Settings.workPackageColumn5Width;
            PercentComplete.TextAlignment = TextAlignment.Center;

            //add your control to the stackpanel
            StackP.Children.Add(Text1);
            StackP.Children.Add(Text2);
            StackP.Children.Add(Text3);
            StackP.Children.Add(Button1);
            StackP.Children.Add(PercentComplete);
            //add the stackpanel to the grid
            WorkPackageViewResults.Children.Add(StackP);
        }

我正在嘗試使用LINQ來訪問上面以編程方式更新的網格:

<Grid Name="WorkPackageViewResults">
    </Grid>

在此處輸入圖片說明

我沒有看到它們為您提供的單元格類型的選項。 我想訪問一個特定的行PercentComplete TextBlock,以便更新文本。 我該如何完成?

由於只有一個StackPanel您可以說e => e.GetType() == typeof(StackPanel) 如果您有很多,則將一個Name添加到StackPanel並按此拉它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM