小编Sal*_*ari的帖子

在WPF中对齐字符串

我想打印这样的数据:

http://www.csharp-examples.net/align-string-with-spaces/


 -------------------------------
 Bi1l       | Gates      |    51
 EdnA       | Parker     |   114
 JohNny     | Depp       |    44
 -------------------------------

我尝试使用上面的例子,PadRight以及PadLeft更多的长度计算,我总是得到这种类型的输出(我的输出转到a TextBox)


 -------------------------------
 Bill      | Gates      |    51
 Edna       | Parker  |   114
 Johnny       | Depp       |    44
 -------------------------------

对于我的想法,它发生是因为WPF不为每个字符提供固定和相等的块,因此W占用更多的空间i,并使分离看起来很糟糕.

有人可以帮我解决问题吗?

c# string wpf alignment

3
推荐指数
1
解决办法
56
查看次数

无法启用ComboBox

我有一个ComboBox我放在SourceGrid3控件中,但由于某种原因我无法设置Enabled属性true.

这是我的代码.

ComboBox cboMyComboBox = new ComboBox(); 
cboMyComboBox.Enabled = true;
cboMyComboBox.BeginUpdate(); 
cboMyComboBox.Items.AddRange(new object[] { "Accept", "Reject" });
cboMyComboBox.EndUpdate();
cboMyComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
SourceGrid3.Cells.Real.CellControl thisControl = new SourceGrid3.Cells.Real.CellControl(cboMyComboBox);

myGrid[row, column] = thisControl;
Run Code Online (Sandbox Code Playgroud)

(myGridSourceGrid3网格)

出于某种原因,当最后一行被执行时,该Enabled值将转向false并且后续尝试更改它(如将其设置回true)不会产生任何影响.

即使我尝试true在Visual Studio调试器中更改值,它也不会允许它,只需将其更改回false.我已经看过了ReadOnly这个字段属性,但似乎并没有成为一个(除非我失去了一些东西),而且我不能改变其他属性(如RightToLeftNoYes)

还有什么我可以检查可能会导致这种控制被强制执行false吗?

c# combobox winforms

3
推荐指数
1
解决办法
504
查看次数

Datatable.merge喜欢加入

我有两个DataTables这样的:

DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
Run Code Online (Sandbox Code Playgroud)

dt1:

在此输入图像描述

dt2:

在此输入图像描述

我需要合并两个DataTables并设置为GridView这样:

dt1.Merge(dt2, true, MissingSchemaAction.Add);
GridView1.DataSource = dt1;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

但得到这样的输出:

在此输入图像描述

我怎么能这样合并?

在此输入图像描述

c# datatable

3
推荐指数
1
解决办法
1149
查看次数

尽管使用了查询字符串,但在使用sql COUNT时,ExecuteNonQuery返回-1

出于某种原因,ExecuteNonQuery()在C#返回时-1,虽然当我单独运行查询时,该值返回所需的实际值.

例如:

try
{

    var connString ="Data Source=ServerName;InitialCatalog=DatabaseName;Integrated Security=true;"
    SqlConnection conn = new SqlConnection(connString);

    SqlCommand someCmd = new SqlCommand("SELECT COUNT(*) FROM SomeTable");

    someCmd.Connection = conn;

    conn.Open();

    var theCount = cmd.ExecuteNonQuery();

    conn.Close();
}
catch(Exception ex)
{
    Console.WriteLine(ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

执行命令时返回-1.虽然如果单独运行查询,

SELECT COUNT(*) FROM SomeTable;
Run Code Online (Sandbox Code Playgroud)

4如果要查询的表具有4行,则列返回一行,其计数为count .

c# sql sql-server ado.net executenonquery

3
推荐指数
1
解决办法
2687
查看次数

将模型导出到数据表

我想将我的模型数据转换为DataSetDataTable(以 excel 格式导出)

db.EMPs.ToList()
Run Code Online (Sandbox Code Playgroud)

dbDataContextEMPsdataclass

如何将此列表导出到DataTable,我可以将行导出到 excel 但如何从标题访问列名(不应在 中手动添加列名DataTable

c# linq asp.net-mvc entity-framework

3
推荐指数
1
解决办法
5889
查看次数

使用String Interpolation将字符串格式化为列

我需要打印双打,以便为字符串表示值分配确定数量的符号(如8).下一个单词应该从每个字符串中字符串开头的相同索引处开始.我现在有:

value: 0 test
value: 0.3333333333333 test
value: 0.5 test
Run Code Online (Sandbox Code Playgroud)

我需要:

value: 0           test
value: 0.33333333  test
value: 0.5         test
Run Code Online (Sandbox Code Playgroud)

测试代码:

double[] ar = new double[] { 0, (double)1 / 3, (double)1 / 2 };
string s = "test";

foreach (var d in ar)
{
    Console.WriteLine($"value: {d} {s}");
}
Run Code Online (Sandbox Code Playgroud)

之后我应该添加{d:什么?

c# string format double c#-6.0

3
推荐指数
1
解决办法
1396
查看次数

Dictionary.ContainsKey甚至认为密钥存在时返回false

我有一段代码如下:

IDictionary<string, string> dictionary = new Dictionary<string, string>(){
        { "de-DE", "German"},
        { "en?GB", "English"},
        { "en?US", "English"},
        { "es?ES", "Spanish"},
        { "es?MX", "Spanish"},
        { "fr?CA", "French"},
        { "fr?FR", "French"},
        { "hu?HU", "Hungarian"},
        { "pl?PL", "Polish"},
        { "pt?PT", "Portuguese"},
        { "nl?NL", "Dutch"},
        { "nb?NO", "Norwegian"},
        { "sv?SE", "Swedish"},
        { "it?IT", "Italian"},
};
bool check = dictionary.ContainsKey("en-US");
Console.WriteLine(check);
Run Code Online (Sandbox Code Playgroud)

check回报false.有人可以帮忙解释一下吗?

c# dictionary

3
推荐指数
1
解决办法
315
查看次数

在 UIElementCollection 上使用 Where 表达式

我正在将 Silverlight 应用程序转换为 WPF。下面的代码没有编译,但它在 Silverlight 中编译:

XAML:

<Grid x:Name="Table">
</Grid>
Run Code Online (Sandbox Code Playgroud)

后面的代码:

foreach (var uiElement in Table.Children
            .Where(x => Grid.GetColumn((Border)x) == Table.ColumnDefinitions.Count() - 1))
{
   //do something
}
Run Code Online (Sandbox Code Playgroud)

Where它说

“UIElementCollection”不包含“Where”的定义,并且找不到接受“UIElementCollection”类型的第一个参数的扩展方法“Where”(您是否缺少 using 指令或程序集引用?)

System.Linq 添加了命名空间。

如果我转换UIElementCollection为 anIList<object>那么它可以工作,但我收到警告:

这是一个可疑的演员

我究竟做错了什么?

c# linq wpf xaml

3
推荐指数
2
解决办法
2018
查看次数

没有[必需]的EF模型属性不为null

是否有可能让Entity框架从模型生成一个表,标记为非null的列而不使用[Required]模型属性上的注释?

原因:

对象被发布到api,我检查ModelState.IsValid控制器.该物业是应该生成的服务器端,而不是来自外部,但如果我有属性[Required]ModelState.IsValid是假的(在这种情况下,我回用BadRequest(ModelState);).

我可以告诉EF以其他方式使列不为空吗?

我想另一个解决方案是期望将另一个对象(某种DTO)发送到api然后进行映射.但是对于这个单独的属性,该对象看起来完全相同,这使得它看起来有点不必要,对吧?

c# entity-framework entity-framework-core .net-core asp.net-core-2.0

3
推荐指数
1
解决办法
1543
查看次数

使用实体框架的唯一主键

我是 EF 的新手。假设我在数据库中有一个这样的表:

ID    FirstName     LastName    DateOfBirth
-------------------------------------------
1     John          Smith       1.1.1990
2     Mary          Wilson      5.1.1991
Run Code Online (Sandbox Code Playgroud)

现在我使用 EF 将新实体插入到表中:

dbcontext.Persons.Add(new Person
{
    FirstName = "John",
    LastName = "Smith",
    DateOfBith = "1.1.1990"
});
dbcontext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

我需要代码抛出异常,因为该行已存在于数据库中,但 EF 所做的是将 ID 列增加 1 并创建新记录:

ID    FirstName     LastName    DateOfBirth
--------------------------------------------
1     John          Smith       1.1.1990
2     Mary          Wilson      5.1.1991
3     John          Smith       1.1.1990
Run Code Online (Sandbox Code Playgroud)

EF 甚至有能力做到这一点吗?

.net c# sql entity-framework primary-key

3
推荐指数
1
解决办法
1120
查看次数