0

ネットワーク上のすべてのフレームを監視する必要があります。このためにListViews、フレーム名、DLC、ペイロード、およびタイムスタンプを表示するための 2 を作成しました。新しいフレームが受信され、フレームで更新が行われたときに発生するイベントがありますListView。lv で 1 つのフレームを選択すると、2 番目のフレームにはListView、選択したフレームに関する小さな情報が入力されます。ListViewそのイベントが発生し、フレームのペイロードが変更されると、選択された行と秒全体の両方が更新されます。Dispatcher.Invoke私はこのすべての作業に対して1 つしか持っていませんがGUI、更新が遅れているようです。2 つのディスパッチャを使用する必要がありますか? 1 つは最初のフレーム更新用でListView、2 番目はもう 1 つのフレーム更新用です。ListView? それぞれにどの優先順位を選択する必要がありますか? 現時点では、Loaded という名前の 6 番目のレベルを使用しています。

<ListView ItemsSource="{StaticResource frames}" 
          Grid.Row="0" 
          Margin="0,1,0,1" 
          Name="lvFrames"
          VerticalContentAlignment="Top" 
          ItemContainerStyleSelector="{StaticResource itemSelector}"
          FontSize="12"
          VirtualizingStackPanel.VirtualizationMode="Recycling"
          VirtualizingStackPanel.IsVirtualizing="True"
          BorderThickness="1"
          BorderBrush="Gray" 
          Grid.ColumnSpan="2" 
          SelectionChanged="lvFrames_SelectionChanged">

    <ListView.View>
        <GridView>
            <GridViewColumn Header="Time" DisplayMemberBinding="{Binding Time}" Width="55"/>
            <GridViewColumn Header="Dir" DisplayMemberBinding="{Binding Dir}" Width="40"/>
            <GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}" Width="40"/>
            <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="125"/>
            <GridViewColumn Header="Dlc" DisplayMemberBinding="{Binding Dlc}" Width="40" />
            <GridViewColumn Header="Data" DisplayMemberBinding="{Binding Data}" Width="150" />
        </GridView>
    </ListView.View>
</ListView>

これはXAML最初のものListViewです:

<ListView ItemsSource="{StaticResource signals}" 
          Grid.Row="0" 
          Margin="0,1,-0.48,0"
          Name="lvSignals"
          VerticalContentAlignment="Bottom" 
          FontSize="12" VirtualizingStackPanel.VirtualizationMode="Recycling"
          VirtualizingStackPanel.IsVirtualizing="True" 
          BorderThickness="1" BorderBrush="Gray" Grid.ColumnSpan="2"
          VerticalAlignment="Stretch">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Signal Name"
               DisplayMemberBinding="{Binding Name}" Width="160" />
                <GridViewColumn Header="Signal Value"
              DisplayMemberBinding="{Binding Value}" Width="100"/>
           </GridView>
       </ListView.View>
   </ListView>

そして、これは信号用ListViewです。

4

0 に答える 0