说我有几个这样的基本对象:
[Serializable]
public class Base
{
public string Property1 { get; set; }
public int Property2 { get; set; }
}
[Serializable]
public class Sub: Base
{
public List<string> Property3 { get; set; }
public Sub():base()
{
Property3 = new List<string>();
}
}
Run Code Online (Sandbox Code Playgroud)
我像这样序列化它们:
Sub s = new Sub {Property1 = "subtest", Property2 = 1000};
s.Property3.Add("item 1");
s.Property3.Add("item 2");
XmlSerializer sFormater = new XmlSerializer(typeof(Sub));
using (FileStream fStream = new FileStream("SubData.xml",
FileMode.Create, FileAccess.Write, FileShare.None))
{
sFormater.Serialize(fStream, s);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能反序化它们,以便我找回正确的课程?
就像在,我想要这样的东西
XmlSerializer …Run Code Online (Sandbox Code Playgroud) 在WPF中,我知道我可以用来ListView.ScrollIntoView将特定项目滚动到视图中,但它总是会进行最少量的滚动,以便显示项目.
如何使其滚动以便我想要显示的项目滚动到ListView的顶部?
我曾经考虑过两次调用ScrollIntoView,一次是针对我想要的项目,一次针对最后显示的项目,但我不知道如何找出最后显示的项目.
如何找到我的列表中是否包含一个且只有一个项目没有Count或Single?
我在窗口中定义了一个TextBox,如下所示:
<Window x:Class="NS.MainWindow"
...
SizeToContent="WidthAndHeight">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition MinWidth="200" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition MinHeight="50" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0">Description:</TextBlock>
<TextBox Grid.Column="1" Grid.Row="0" TextWrapping="WrapWithOverflow" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
问题是,当用户键入TextBox时,它会向右扩展,因为只设置了MinWidth.我真正想要的是要包装到下一行的文本.如果我将列上的MinWidth更改为Width,我可以这样做.但是,如果我这样做,那么在调整Window大小时TextBox不再调整大小.
有没有办法可以兼顾两者?(即仅在Window调整大小时调整大小,否则换行)
我想创建一个简单的ListBox并将SelectAll作为上下文菜单项.然而,似乎ListBox对SelectAll有一些内置的处理,我无法正常工作,但是干扰了我实现SelectAll的尝试.
我的整个XAML是这样的:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.SelectAll"
Executed="SelectAllExecuted" />
</Window.CommandBindings>
<DockPanel>
<CheckBox DockPanel.Dock="Top">My Checkbox</CheckBox>
<ListBox Name="listBox" SelectionMode="Multiple">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Command="ApplicationCommands.SelectAll" />
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>
</DockPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
SelectAllExecuted就是这样的:
private void SelectAllExecuted(object sender, ExecutedRoutedEventArgs e)
{
listBox.SelectAll();
}
Run Code Online (Sandbox Code Playgroud)
如果列表框不在焦点上,则控制+ A有效.上下文菜单项正常工作.但是如果列表框是集中的,Control + A拒绝工作.
我觉得我正在与列表框作斗争,但我不应该这样做.
编辑:似乎我的整个问题都在于Multiple SelectionMode.如果我将它设置为Extended,则一切正常,但我不希望它在扩展模式下.
当使用调用SqlCommand.ExecuteReader()方法时,ReSharper告诉我,当我之后使用SqlDataReader对象时,我有一个可能的NullReference异常.
所以使用以下代码:
using (SqlConnection connection = GetConnection())
{
using (SqlCommand cmd = connection.CreateCommand())
{
cmd.CommandText = ; //snip
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//snip
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该while (reader.Read())行加下划线.
我的问题是读者对象何时会为空?我从来没有遇到它,文档没有提到它可能.我应该检查它是否为空或是否可以安全忽略?
为什么ReSharper认为它可能为null,例如它让我使用SqlCommand而不建议检查null?我猜是ExecuteReader方法有一个属性.
我有一个ASP.NET应用程序,我们已经编写了自己的日志记录模块.
我的问题是,将日志文件写入的标准位置在哪里?即网站将作为匿名用户身份运行(例如IIS7上的IUSR),我需要一个我知道它有权写入的地方.
干杯,
我在winforms中有一个面板,在其中我加载了一些用户控件.
每次添加新的用户控件时,我都想自动滚动到面板的底部(当我的面板填充时).我怎么能这样做?
有谁知道为什么最后一个不起作用?
object nullObj = null;
short works1 = (short) (nullObj ?? (short) 0);
short works2 = (short) (nullObj ?? default(short));
short works3 = 0;
short wontWork = (short) (nullObj ?? 0); //Throws: Specified cast is not valid
Run Code Online (Sandbox Code Playgroud) 简单的ASP.NET应用程序
我有两个下拉控件.在第一次下拉我有一个JavaScript onChange事件.JavaScript启用第二个下拉列表并从中删除一个值(在第一个下拉列表中选择的值).如果他们单击下拉列表的空白第一个值,则将禁用第二个下拉列表(并重置选项).
我还在该OnPreRender方法中有代码,该代码将根据第一个下拉列表的值启用或禁用第二个下拉列表.这样可以在代码中选择第一个下拉列表的值(加载用户设置).
我的问题是:
我试图通过加入启动脚本(将设置第二滴的正确状态下)ClientScript.RegisterStartupScript,但是当这个被称为第一个下拉拥有selectedIndex的0,而不是它实际上是什么.我的猜测是选择的值在我的启动脚本之后设置(但仍然没有调用onChange脚本).
关于尝试什么的任何想法?