我试图弄清楚Grid如何在列和行中进行大小共享.我正在用反射器查看网格代码但找不到任何命中.共享/行共享大小应该首先获得所需的大小,然后再次使用最大找到的大小进行测量,以获得相同的大小,以避免被排除在编排通道中,如果我没有弄错的话.但我无法使用Reflector找到任何与大小共享的代码.有人可以解释一下大小共享应该如何在一个自定义面板类中大致实现,以便进行测量和安排?
我想念 WPF 中的 HTML-cellspacing。我试图通过从 Grid 覆盖自定义 Grid 类,然后修改 MeasureOverride 和ArrangeOverride 来获得我想要的行为,从而在 WPF 的 Grid 中实现类似的东西。即网格中的每个单元格与其他单元格之间应该有固定的间距(不是填充)。这怎么可能?
我对Windows 8中出现的所有新内容感到非常兴奋,但同时又有点担心如何以及如果我可以继续使用我已经使用.NET和C#构建的代码和自定义组件作为Windows开发者.关于这一点,我有一些一般的混合问题.希望你不介意我把它们放在一个帖子中:
Windows 8商店是适用于都市风格的应用程序还是常规的WPF桌面应用程序?包括推动更新和为公司员工提供应用程序?
WPF应用程序是否也可以使用新的App契约?AppContract是否基于WCF服务,可能在网络上进行UDP发现?我可以使用App Contract框架在自己的应用程序之间签订自己的合同吗?
我不是特别担心WPF是否会被抛弃.我可以没有它.令我担心的是,如果我仍然可以在C#中编写演示文稿和业务层代码并将其用作我的应用程序的后端,无论我将使用什么UI框架,HTML,Silverlight,WPF或者你有什么.如果我仍然能够在C#中编写逻辑并使用X UI框架呈现它,那么我是一个开心的开发人员.我听说我可以从JavaScript访问.NET框架.但是自定义组件呢?
我有一个 double 的文本表示,想知道将它往返于 double 和 back 是否安全。如果我也想接受任何类型的输入类型,我怎么知道这一点?或者我怎么知道当用 Double.Parse 解析双字符串时是否有任何精度丢失?或者我如何 ToString a double 以匹配与另一个双字符串相同的格式?对这些问题中的任何一个的回答将是我认为的解决方案。
我正在寻找将C#转换为XML并再次反序列化回C#的选项.有人知道任何现有的解决方案吗?我假设Roslyn SyntaxTree不是Xml可序列化的.我还假设为一个syntaxtree制作一个xml-serializer是一项相当大的工作.但也许不是吗?
我为什么需要这个?我想通过xsl到syntaxtree-xml从xml模型生成代码,然后生成c#(或者可能是vb).
我不想直接从XSL生成C#(可以做但我觉得它不是理想的).我需要XSL,因为我还要从XML模型生成XAML和HTML,我也希望能够生成任何需要的代码等等.
我知道T4模板,但现在我正在寻找其他选项,原因有很多.
我正在尝试调试绑定到 itemssource 和 selecteditem 的组合框中的一个奇怪错误。这让我疯狂。
更改存在组合框的选定选项卡时会出现问题。(实际上只有在更改 ComboBox 的 DataContext 时才会如此)。SelectedItem 绑定有一个自定义验证规则,如果值为 null,则会给出错误。
问题是 wpf 在切换tabitems (DataContext)时调用我的自定义规则并尝试验证 null 值,即使 selecteditem-source 从不为 null。这是个问题。
这是我制作的一个简化案例,显示了相同的错误:
在NotNullValidationRule.Validate 中设置断点,看看 WPF 如何尝试将 SelectedItem 验证为 null,即使它不存在于任何视图模型实例中。
更新
经过更多的实验,我发现 TabControl 实际上是无关紧要的。即使有一个简单的 ComboBox 和一个按钮来切换它的 DataContext 我也遇到了完全相同的问题。我正在用新版本替换代码示例。
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
namespace ComboBoxValidationBugTest
{
public partial class MainWindow : Window
{
private Test t1, t2;
public MainWindow()
{
InitializeComponent();
t1 = new Test();
t1.Items.Add("A");
t1.Items.Add("B");
t1.Items.Add("C");
t1.SelectedItem = "A";
t2 = new …
Run Code Online (Sandbox Code Playgroud) 在 C# .NET Core 应用程序中,我有一些代码通过将数据附加到文件流来保存更改,同时我希望确保不会导致部分写入的字节。
我正在考虑通过在 a 中运行我的代码来模拟 xunit 测试中的崩溃Task
,然后随机杀死它Task
以查看它的行为如何。但Task
没有任何终止开关,我不能CancellationToken
在这里真正使用 s 。线程曾经有Abort
,但我在.NET Core 中找不到它。我猜他们把它删除了。您可以建议在 xunit 中使用的任何其他选项吗?当然,我可以在单独的进程中运行代码,但我正在寻找一些更简单的方法来执行此操作。
我读到附加在缓冲区长度上是原子的,所以如果我有足够大的缓冲区用于事务,我想我会安全吗?但我也想在各种条件下对此进行测试。
更新
我将标题更改为不包括电源故障情况,只是随机崩溃。
另外,如果由于写入不是评论中指出的原子性而无法避免这种情况,那么在处理追加时如何使写入更安全有什么建议吗?如果我(过度)编写整个文件,我可以单独编写它,然后在完成后替换旧的文件(就像 MS Office 应用程序和其他应用程序一样),但是当附加到文件时,我想它会变得更加复杂。我可以单独写入,然后以某种方式自动连接两个文件段吗?
更新2
如果有人想知道的话,我现在至少已经解决了如何真正进行原子追加。我只是像往常一样写入字节,当事务完成时,我将位置指针更新到事务的最后一个字节所在的位置。我会忽略该位置之后的任何字节。似乎是最好的选择。但这不是真正的问题,真正的问题是如何在 xunit 测试中模拟随机崩溃。
我有几个 Docker swarm 问题(抱歉没有把它们分开,但它们都密切相关):
背景:我想弄清楚的是我应该如何使用 Docker 构建微服务网格。容器将运行 .NET Core。我不太热衷于过分依赖 Docker,因为它可能不会在几年内成为首选技术。我可以/应该用 Docker 做什么以及我可以/应该在容器内做什么。这就是我想弄清楚的。
在对具有实体和值对象的域进行建模时,将“基本”值类型与定义好的值对象一起生成是否有意义?
例如,我可以有一个值对象 EmailAddress 或 ProductName。但是仅将 String 作为值对象呢?它是否出于任何充分的理由违反了任何已知的原则?我真正想知道的是,我是否应该/可以将所有可能的属性值定义为值对象,包括 string、bool、int 等。这是错误的还是只是做得很远?不知何故,我觉得我更喜欢真正明确地表达任何具有某种价值的“事物”,而不是留下任何可以解释的东西。你怎么认为?大师们对此有何看法?
我偶然发现的一个参考:
用适当的值对象替换常见的原语(例如字符串)通常是个好主意。虽然我可以将电话号码表示为字符串,但转换为电话号码对象会使变量和参数更加明确(在语言支持时进行类型检查)、验证的自然焦点,并避免不适用的行为(例如对整数 ID 号)。
如果我错了,请纠正我(并添加您认为正确的其他内容):
应用服务...
域服务...
c# ×5
wpf ×4
.net ×2
asp.net-core ×1
cellspacing ×1
combobox ×1
datacontext ×1
docker ×1
docker-swarm ×1
double ×1
filesystems ×1
parsing ×1
roslyn ×1
windows-8 ×1
xaml ×1