TableCell关于WPF 的分裂策略,我有一个问题FlowDocument Table.
这是一个允许重现问题的简单代码:
MainWindow.xaml.cs
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var table = new Table() { BorderThickness = new Thickness(1), BorderBrush = Brushes.Black, CellSpacing = 0 };
var rowGroup = new TableRowGroup();
var tableRow = new TableRow();
var cell1 = new TableCell() { Background = Brushes.Red, BorderThickness = new Thickness(0, 0, 1, 0), BorderBrush = Brushes.Black };
var cell2 = new TableCell() …Run Code Online (Sandbox Code Playgroud) 我目前在WPF TreeView上有一个奇怪的内存泄漏.当我在TreeView中选择一个项目时,相应的绑定ViewModel强烈保存在TreeView EffectiveValueEntry []集合中.问题是,当ViewModel从其父集合中删除时,它不会被释放.
这是一个重现问题的简单代码:
MainWindow.xaml
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls.Primitives;
namespace TreeViewMemoryLeak
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
public ObservableCollection<Entry> Entries
{
get
{
if (entries == null)
{
entries = new ObservableCollection<Entry>() { new Entry() { DisplayName = "First Entry" } };
}
return entries;
}
}
private void Button_Click(object sender, RoutedEventArgs e) { entries.Clear(); }
private ObservableCollection<Entry> entries;
}
public class Entry : DependencyObject
{
public …Run Code Online (Sandbox Code Playgroud) Heya 编码员/开发人员/网络人员/Devops/...
我在 WSL2(Windows 10 2004 版本)上下文中遇到mDNS/DNS-SD设置问题
我在家里有一个非常简单的设置,有一个主服务器和一个 Raspberry Pi,我想激活 DNS 服务发现,从而让我有一种简单的方法在我的 Raspberry PI 上自动发现我的服务器。
使用像dnssd这样的简单库,甚至自己广播正确的数据,我设法在不使用 WSL2 时使其轻松工作。但是我有一个要求让它在 WSL2 上工作,这就是事情变得复杂的地方。
由于 WSL2 在其自己的子网上运行,因此广播不再起作用。在子网上使用 mDNS 仅适用于该子网。然而,Windows 已经重新路由了主机和 WSL 之间的一些广播流量。
这很容易测试:Ping从我的服务器到依赖 mDNS 的 Pi 的 Avahi 地址做一个简单的工作。
在屏幕左侧,您可以看到 Wireshark 在主机网络接口上捕获的流量,在右侧,您可以看到 Wireshark 在 WSL 网络接口上捕获的流量。前3行是一个简单的ping:它是在WSL的上下文中执行的,但是这里出现的IP地址172.28.192.1——不是WSL客户端的IP地址,而是WSL内部DNS服务器的IP地址。正如您在右侧看到的那样,它在主机上完美地重新路由,带有 Windows 主机的 IP 地址:192.168.0.39
但是,由脚本执行的第二个查询具有 WSL 源 IP ( 172.28.204.42),并且该查询不会在主机上重新路由。
我的网络知识非常有限,我不明白这是如何工作的,以及如何让 WSL 在主机上路由我自己的 mDNS 查询。一个疯狂的猜测是它与 iptables 有关,但就我而言。
如果有人知道为什么它适用于 DNS 服务器源地址而不是当我自己执行它时,这将对我有很大帮助!
对于我在这里的第一篇文章,我有一个关于IEnumerable比较的问题.我有一个基于枚举逻辑的可绑定结构.IEnumerable的内容随着时间的推移而变化,我必须手动触发CollectionChanged事件.
我有一个非常天真的算法,允许我检测IEnumerable的两个状态之间的简单更改(简单添加,简单删除,多次添加,多次删除),但它不是非常有效,并且不会检测到所有内容.
我需要的一个简单示例:
IEnumerable的状态1: A*B*C*D*E.
IEnumerable的状态2: A*C*B*D*D1
对于这个例子,我必须检测
有没有算法尽可能有效地解决这个问题(O(nLog(n))会是一个好的开始)?
谢谢 !
.net ×3
c# ×3
wpf ×2
algorithm ×1
comparison ×1
dns-sd ×1
flowdocument ×1
ienumerable ×1
mdns ×1
memory ×1
memory-leaks ×1
routes ×1
subnet ×1