1

TableRowで行がクリックされたときに、からすべてのデータを取得したいWPF

currentRow = tab.RowGroups[0].Rows[r];
currentRow.MouseLeftButtonDown += new MouseButtonEventHandler(test);

void test(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
   try 
   {
      TableRow tr = sender as TableRow;
      // After that what i do to read TableCell Value
   } 

   catch(Exception ex) 
   {
       MessageBox.Show(ex.Message);
   }
}

助けてください...

4

1 に答える 1

1

少し遅れていることは承知しており、おそらくまだこのプロジェクトに参加していない可能性がありますが、将来これを見る可能性のある人のために: 各セルからデータを取得するには、後で

TableRow tr = sender as TableRow;

次のようなことを行います。

// I imagine you'd want to start a list here
// that will hold the contents of your loops' results.
List<string> resultsList = new List<string>();
foreach(var tableCell in tr.Cells)
{
    // May want to start another list here in case there are multiple blocks.
    List<string> blockContent = new List<string>();
    foreach(var block in tableCell.Blocks)
    {
        // Probably want to start another list here to which to add in the next loop.
        List<string> inlineContent = new List<string>();
        foreach(var inline in block.Inlines)
        {
            // Implement whatever in here depending the type of inline,
            // such as Span, Run, InlineUIContainer, etc.
            // I just assumed it was text.
            inlineContent.Add(new TextRange(inline.ContentStart, inline.ContentEnd).Text);
        }
        blockContent.Add(string.Join("", inlineContent.ToArray()));
    }
    resultsList.Add(string.Join("\n", blockContent.ToArray()));
}

FlowDocument 階層について調べてみることをお勧めします。開始するのに適切な場所は、MSDN のドキュメントです。

于 2016-07-07T22:32:49.340 に答える