ネットワーク上のすべてのフレームを監視する必要があります。このために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
です。