我知道这可能听起来像一个非常愚蠢的问题,但我对这个问题没有答案.我们的一位用户最近报告了一个错误,我意识到有一些旧的代码正在使用!= string.Empty它IsNullOrEmpty().我修好它IsNullOrEmpty()现在运行正常,但我想真正理解这个问题
问题是,完全相同的代码在某些机器上的运行方式不同.我基本上有一个对象:context["MODE"]那应该是空的.我在它上面添加了一些测试来记录:
contextBuilder.AppendLine("MODE: |" + context["MODE"] + "|");
contextBuilder.AppendLine("MODE != string.Empty: " + (context["MODE"] != string.Empty));
contextBuilder.AppendLine("MODE TRIM != string.Empty: " + (context["MODE"].ToString().Trim() != string.Empty));
contextBuilder.AppendLine("MODE.IsNullOrEmpty: " + string.IsNullOrEmpty(context["MODE"].ToString()));
contextBuilder.AppendLine("MODE.TRIM.IsNullOrEmpty: " + string.IsNullOrEmpty(context["MODE"].ToString().Trim()));
Run Code Online (Sandbox Code Playgroud)
以下是我关于该字段详细信息的日志:
MODE: ||
MODE != string.Empty: False
MODE TRIM != string.Empty: False
MODE.IsNullOrEmpty: True
MODE.TRIM.IsNullOrEmpty: True
Run Code Online (Sandbox Code Playgroud)
这是他的日志:
MODE: ||
MODE != string.Empty: True
MODE TRIM != string.Empty: False
MODE.IsNullOrEmpty: True
MODE.TRIM.IsNullOrEmpty: True
Run Code Online (Sandbox Code Playgroud)
你可以看到有一点不同:MODE != string.Empty对我来说是假的(有道理),对他来说是对的!MODE显然不是null(否则.ToString() …
最近,我有这个问题有关的滚动和焦点改变.
我通过添加DataGrid以下内容解决了这个问题:
<DataGrid.Template>
<ControlTemplate>
<ItemsPresenter />
</ControlTemplate>
</DataGrid.Template>
Run Code Online (Sandbox Code Playgroud)
滚动现在工作正常,但出现了一个新问题:DataGrid标题不再显示了.它实际上是逻辑,因为现在我DataGrid只会在ItemsPresenter没有处理标题的情况下显示.因此,我尝试定义一个合适的模板,首先显示标题,然后显示一个项目ItemsPresenter,允许我轻松滚动.我只是遗漏了一些东西,还是要覆盖不同的属性?
谢谢!
我正在开发一个有点简单数据模型的应用程序(4个表包括两个小表,有大约10行,两个更大,有数百行).我正在使用C#,目前使用OdbcDriver作为我的数据访问层.我想知道这个驱动程序或NHibernate之间的性能有什么不同吗?应用程序有效,但我想知道安装NHibernate而不是经典的OdbcDriver会让它更快吗?如果是这样,差异真的值得安装NHibernate吗?(根据我从未使用过这种技术的事实)
谢谢!
我有一个奇怪的问题.
情况就是这样.我有一个ListView定制的自定义GroupStyle,使数据显示在Expanders中,其中有一个WrapPanel包含StackPanels(包含一个ToggleButton +一个自定义控件)StackPanel默认情况下,自定义控件不可见,并在ToggleButton选中时显示.但是,当我检查a时ToggleButton,会出现自定义控件,位于同一行的所有其他控件将移动到垂直中心.理想情况下,我希望其他成员能够保持领先地位.我试着尽VerticalAlignment="Top"我所能,不管怎样都不会改变.
成像问题:
扩展器的初始状态:

一旦ToggleButton被点击时,会出现以下情况:

如您所见,"测试分析"按钮移动到中心位置.我希望它与原版保持在同一个地方.
而且,我已经在单独的DataTemplates对象中定义了所有这些样式.这里有一些轻量代码(我刚刚删除了这里的问题无用,不会让你阅读大量的XAML代码:)):
扩展器的内容属性:
<Expander.Content>
<WrapPanel Background="White" VerticalAlignment="Top">
<ItemsPresenter VerticalAlignment="Top"/>
</WrapPanel>
</Expander.Content>
Run Code Online (Sandbox Code Playgroud)
清单的ItemsPanel:
<ItemsPanelTemplate >
<WrapPanel
Width="{Binding (FrameworkElement.ActualWidth),
RelativeSource={RelativeSource
AncestorType=Expander}}"
ItemWidth="{Binding (ListView.View).ItemWidth,
RelativeSource={RelativeSource AncestorType=ListView}}"
ItemHeight="{Binding (ListView.View).ItemHeight,
RelativeSource={RelativeSource AncestorType=ListView}}" />
</ItemsPanelTemplate>
Run Code Online (Sandbox Code Playgroud)
清单的ItemsTemplate:
<StackPanel Orientation="Vertical" Height="Auto" Width="Auto" VerticalAlignment="Top" >
<ToggleButton BorderBrush="{x:Null}" Background="{x:Null}" IsChecked="{Binding Value.IsToLaunch, Mode=TwoWay}"
Command="{Binding DataContext.UpdateGroupCheckingsCommand,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}}}"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个C#/ WPF解析器.我对正则表达式有一个很好的全面理解,因为这不是我的第一个解析器(可能不是我的最后一个)
但是,现在我有一种非常奇怪的行为.这是我要解析的内容(注意:删除了实际数据,我只是按照与我相同的结构制作了一个字符串):
aaaaa bbbbb 50 c blabla
我的应用程序将收到我想要拆分和识别的行.由于某种原因,空格的数量是可变的(一个在aaaa和bbbb之间,两个在bbbb和50之间......).(注意人们告诉我之前:我不会使用string.Split().因为我有很多不同的线条结构,我应该总是得到相同的数据.只是拆分它会让我无法识别每一个部分意味着)
我目前的测试正则表达式有点简单:
(\S*)[\s*](\S*)[\s*](\S*)[\s*](p|c)(.*)
Run Code Online (Sandbox Code Playgroud)
现在,发生了什么.当bbbbb和50之间只有一个空格时,正则表达式正确解析(注意:我使用http://www.myregextester.com/index.php来测试我的正则表达式)
$matches Array:
(
[0] => Array
(
[0] => aaaaa bbbbb 50 c blabla
)
[1] => Array
(
[0] => aaaaa
)
[2] => Array
(
[0] => bbbbb
)
[3] => Array
(
[0] => 50
)
[4] => Array
(
[0] => c
)
[5] => Array
(
[0] => blabla
)
)
Run Code Online (Sandbox Code Playgroud)
如果bbbb和50之间有两个空格,则会发生以下情况:
$matches Array:
(
[0] => Array
( …Run Code Online (Sandbox Code Playgroud) 我正在使用WPF/C#&编写一个小应用程序SQLITE。
其中一个函数将包含两个日期/时间值的记录插入到table.
我想知道是否有适当的方法来执行此操作(以确保日期/月份字段的存储一致)。
我创建了一个INSERT使用参数和日期变量的查询 (clsVariables.DatActivityEnd = DateTime.Now;)。
String cntnStr = ClsVariables.StrDb;
var connection = new SQLiteConnection(cntnStr);
connection.Open();
using (SQLiteCommand cmd = connection.CreateCommand())
{
cmd.CommandText =
"INSERT INTO tblActivity ([Activity_Category], [Activity_Category_Sub], [Activity_Start], [Activity_End], [Activity_Duration]) VALUES (@ActivityCategory, @ActivityCategorySub, @ActivityStart, @ActivityEnd, @ActivityDuration);";
cmd.Parameters.Add(new SQLiteParameter("@ActivityCategory", ClsVariables.StrActivityCurrent));
cmd.Parameters.Add(new SQLiteParameter("@ActivityCategorySub", ClsVariables.StrActivitySubCurrent));
cmd.Parameters.Add(new SQLiteParameter("@ActivityStart", ClsVariables.DatActivityStart.ToString()));
cmd.Parameters.Add(new SQLiteParameter("@ActivityEnd", ClsVariables.DatActivityEnd.ToString()));
cmd.Parameters.Add(new SQLiteParameter("@ActivityDuration", ClsVariables.DblActivityDuration));
cmd.ExecuteNonQuery();
}
connection.Close();
Run Code Online (Sandbox Code Playgroud)
还有什么我应该做的吗 - 谢谢?
c# ×4
wpf ×2
datagrid ×1
datatemplate ×1
nhibernate ×1
odbc ×1
regex ×1
scrollviewer ×1
sql ×1
sqlite ×1
templates ×1
wpf-controls ×1
wpfdatagrid ×1
wrappanel ×1