我在将计数绑定到文本块时遇到问题。
我有一个列表视图,它的项目绑定到用户对象属性。我想获取绑定的所有项目的数量。
这是我的列表视图:
<ListView ItemsSource="{Binding Users}" x:Name="lvUsers">
<ListView.ItemTemplate>
<DataTemplate>
<ListViewItem IsHitTestVisible="False">
<StackPanel>
<facebookControls:ProfilePicture Height="74" Width="74" ProfileId="{Binding FacebookId}" />
<TextBlock Text="{Binding UserName}" FontSize="18" HorizontalAlignment="Center" />
</StackPanel>
</ListViewItem>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
这是我的 TextBlock:
<TextBlock Text="{Binding ElementName=lvUsers, Path=Items.Count, Mode=OneWay}" />
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我知道如果我的 ListView 没有模板,只有 ListViewItems,它会工作,但我需要它像那样。
我正在使用字符串资源来支持我的应用程序中的某些语言.在Windows商店应用程序中它有点不同,我使用resw文件(而不是resx).
并使用x:Uid我得到字符串,但问题是我没有在设计模式中看到值(仅在运行时).
我也可以编写Text ="TheStringValue",但它并不是我想要的,因为我希望它在设计模式下是动态的.可能吗?
这里有类似的问题,但没有一个适合我的特定情况.
我有一个带有按钮的Windows窗体.该按钮附加到事件处理程序,如下所示:
private void mybutton_Click(object sender, EventArgs e)
{
// do some processing here
}
Run Code Online (Sandbox Code Playgroud)
此外,还有一个组合框,其中选择的变化应该触发如上定义的按钮事件处理程序.
private void mycombobox_SelectedIndexChanged(object sender, EventArgs e)
{
mybutton_Click(sender, e); // this is the line which pops up the dialog
}
Run Code Online (Sandbox Code Playgroud)
代码在运行时完全按预期工作,但我在编译时得到一个对话框提示,其中显示:
你调用的对象是空的
没有其他错误或警告.
谷歌搜索告诉我,如果程序试图访问设置为null的引用类型变量的成员,则此消息是错误.
但是,当我在调试模式下运行此代码时,发送方和事件(e)变量都不为空.
那么为什么会弹出这个对话框呢?
如果这是一个错误或警告 - 它应该显示为错误或警告但不会发生这种情况.
这是截图:

编辑:回答评论中提出的问题
您可以在屏幕截图中看到没有错误.
该程序运行良好 - 只需弹出这个
弹出窗口是由line:mybutton_Click(sender, e);在组合框selectedIndexChanged功能中引起的.
在处理过程mybutton_Click(sender, e)中不使用任何发送者或e参数.
我还没有安装任何VS扩展.
我目前正在使用Web API开发REST Web服务。
现在,我试图通过帖子接收流文件和对象。
当我发送没有JobPosition对象的文件时,我正确地接收了文件,当我发送没有文件的JobPosition文件时,我也正确地接收了JobPosition。
但是,当我通过邮递员发送流文件和对象时,会收到错误消息。
非常感谢您的帮助,以了解这是否可行,如果可以的话,将对我有所帮助。
public class JobPosition
{
public int Id { set; get; }
public string Title { set; get; }
}
[HttpPost]
[Route("Job")]
public async Task<bool> Post(JobPosition job)
{
var multipartMemoryStreamProvider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(multipartMemoryStreamProvider, new CancellationToken());
var stream = await multipartMemoryStreamProvider.Contents[0].ReadAsStreamAsync();
// implementaion
return true;
}
Run Code Online (Sandbox Code Playgroud)
我尝试了Content-Type的所有可能组合,但均未成功。
我正在使用Windows应用商店应用并尝试使用多行和滚动条创建一个文本框.
我假设这应该像在WPF中一样容易实现.
我怎样才能做到这一点?非常感谢!!
我注意到一些奇怪的行为,同时添加两个双打,有时它的工作正确,有时不行!
这是第一个例子:
double num1 = 0.1 + 0.7; //Guess the result?
Run Code Online (Sandbox Code Playgroud)
容易 - 0.8 !!! 或不?
看看奇怪的结果:

猜猜是什么,if语句在else块内,并打印num1- 而不,它不打印0.799999999999993,它打印0.8.
所以我向前迈了一步,尝试了这段代码:
if (0.1 + 0.7 == 0.8) //Returns false ??
{
Console.WriteLine("Correct");
}
Run Code Online (Sandbox Code Playgroud)
好的,很奇怪,但现在我找到了正确的方法,它应该使用f(float).我记得double有很多空格,所以它可以包含更多的数字,也许这就是原因.
float num2 = 0.1f + 0.7f;
if (num2 == 0.8f) //Perfect - finally works !!!
{
Console.WriteLine("Correct");
}
else
{
Console.WriteLine(num2);
}
Run Code Online (Sandbox Code Playgroud)
但是现在,我试试这个 - 再次它返回错误,为什么?
if (0.1f + 0.7f == 0.8f) //Returns false :(
{
Console.WriteLine("Correct");
}
Run Code Online (Sandbox Code Playgroud)
手表在调试时会产生:

谁能解释我这里有什么问题?那些错误吗?
提前致谢.
我想使用内置的秘密功能.NET Core,但它对我不起作用,我不明白为什么我正在做需要的事情。如果您能帮助我并让我知道缺少什么,我将不胜感激。
在开发人员命令中我运行这个:
dotnet user-secrets init
dotnet user-secrets set ConectionStrings:DGM "Data Source=.;Initial Catalog=DGM;Integrated Security=True;MultipleActiveResultSets=True;"
Run Code Online (Sandbox Code Playgroud)
在代码中:
string conn = config.GetConnectionString("DGM");
Run Code Online (Sandbox Code Playgroud)
配置是 IConfiguration。
conn 为空,为什么?
I have an object with the property Value. Value is a nullable number. I have some scenarios for the value of value. Usually, for null cases, I use the default case but this time, it is not correct logically. I want to do "X" in case of 100, "Y" in case of no value (the value is null), otherwise, I want to do "Z".
switch (p.Value)
{
case 100:
// DO X
break;
default:
// Do Z
break;
} …Run Code Online (Sandbox Code Playgroud) 浏览器是Firefox.
我有一个15个单选按钮的列表.在显示它们之后:
<div class="abcd" style="margin-left:10px;">
<form id='some'....>
<legend>Select Item type :</legend>
<fieldset style="display:block;float:left;">
<input class="yy" id="sss" type="radio" name="group0" value="aaa"/> ABC
...
</fieldset>
<p>
<input placeholder="Enter Name/Value" name="xxx" id="xxx" size="40" style="display:block;float:left;">
<button type="button" id="xxx" style="width:100;">Process</button>
</p>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
一切都在一行显示.我不知道如何在单选按钮下显示文本框,中间有一些空格.?
帮助.
我寻找答案,但找不到明确的答案。是的,我知道类似的问题到处都存在。我希望我能在这里得到答案。
假设我有一个Person具有 2 个属性(FirstName、MiddleName)的类。名字是必需的,中间名是可选的。
我希望该FirstName属性始终具有不可为空的数据。
以下是我想到的一些选择(但似乎没有一个是完美的)。
一种可选的方法是使用记录的短语法:
// FirstName might be null (bad)
// MiddleName is optional (good)
public record Person(string FirstName, string? MiddleName);
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用null-forgiving 运算符,但仍然存在同样的问题。
// FirstName might be null (bad)
// MiddleName is optional (good)
public record Person
{
public string FirstName { get; init; } = null!;
public string? MiddleName { get; init; }
}
Run Code Online (Sandbox Code Playgroud)
旧的选项是检查构造函数中的输入:
// FirstName is required and will always have some data (good)
// MiddleName is optional …Run Code Online (Sandbox Code Playgroud) c# ×6
xaml ×3
.net ×1
.net-6.0 ×1
asp.net-core ×1
binding ×1
c#-10.0 ×1
css ×1
html ×1
math ×1
resources ×1
rest ×1
windows-rt ×1
winrt-xaml ×1