让我们假设我想保存datagrid行的数量,这可以是max.24因为每行是1小时.
要在数据库中保存行索引,tinyint字段就足够了.但是在我的脑海里,我还记得有些数据库是针对整数进行优化的吗?!
那么使用tinyint是否值得?
我有这样的XML:
我有一个属性名称的成员类.
我怎样才能阅读每单位及其子单位分成多个通用的List<Unit>,可以再有孩子List<Unit>在递归的方式使用最新的.NET技术?
<Root>
<Units Name="Test1">
<Unit Name="Test11" />
<Unit Name="Test12">
<Unit Name="Test21" />
<Unit Name="Test22" />
<Unit Name="Test23">
<Unit Name="Test31" />
<Unit Name="Test32" />
<Unit Name="Test33" />
</Unit>
<Unit Name="Test24" />
</Unit>
</Units>
<Units Name="Test2" />
<!-- ... -->
<Units Name="Test3" />
<!-- ... -->
<Units Name="Test4" />
</Root>
Run Code Online (Sandbox Code Playgroud) 我正在为基于Windows窗体的应用程序寻找一个良好的GUI测试框架/自动化测试工具.
你能推荐一下吗?
我正在为我的应用程序使用.NET 4.0客户端配置文件,我运行带有4 GB Ram和快速硬盘的双核.
在wpf listview中只显示一个通用List,一开始没什么大不了的.
如何让我的装配更快地冷启动?
我现在又做了一个冷启动并在我的\ obj\x86\Debug文件夹中运行windowsapplication.exe,我的硬盘像地狱一样运行,花了10,5秒???
怎么了?
寒冷之后的温暖启动耗时1秒.
Java 6应用程序没有那个问题,根本没有比较...
更新:
我删除了创建ViewModel时读取数据的所有方法.
还有10秒钟才能出现.它不是从RAM读取数据的问题.问题是繁忙的硬盘除了运行.net 4.0 wpf应用程序之外从未如此响亮......
我没有提到任何第三方dll.
这些是我参考的程序集:
Microsoft.CSharp Presentation.Core PresentationFramework System System.Core System.Data System.Xaml System.Xml System.Xml.Ling WindowsBase
更新2:
我现在从头开始创建一个.NET 4.0 wpf项目,只有一个空窗口和绿色背景;-)
冷启动需要3秒钟(硬盘非常繁忙)
然后我运行我的其他wpf应用程序,花了较早的10秒.现在只需1.5秒即可显示在屏幕上.
现在我的情况很清楚:
我的应用程序没有什么可以使它变慢.它只是加载了第一个wpf应用程序.
我想我会像ADOBE Reader那样做.把一个应用程序加速器...放在自动启动作为一个小的hello world wpf app ...
我这样做了:
Delete FROM MyTable WHERE ScopeValue = ""
Delete FROM G_Scope WHERE ScopeValue is ''
Delete FROM G_Scope WHERE ScopeValue = empty
Delete FROM G_Scope WHERE ScopeValue is empty
Run Code Online (Sandbox Code Playgroud)
我想用xml字段删除所有行(不可为空),其中ScopeValue列有空条目表示零字符.
有谁知道?
我已经制作了一个示例演示VS 2010 RC示例项目,因为在我的生产项目中我使用MVVM时遇到了同样的错误.
在我的示例演示项目中,我只使用Code-behind而没有第三方依赖,因此您可以在此处下载演示项目并自行运行:http://www.sendspace.com/file/mwx7wv
现在问题:当我点击女孩/男孩按钮时,它应该切换datatemplate,不是吗?
我错了什么?
好的,我在这里也提供了一个代码片段:
代码隐藏在MainWindow.cs:
namespace ContentTemplateSelectorDemo
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
Person person;
public MainWindow()
{
InitializeComponent();
person = new Person(){ Gender = "xxx"};
person.IsBoy = true;
ContentGrid.DataContext = person;
}
private void btnBoys_Click(object sender, RoutedEventArgs e)
{
person.IsBoy = true;
person.IsGirl = false;
this.ContentGrid.DataContext = person;
}
private void btnGirls_Click(object sender, RoutedEventArgs e)
{
person.IsGirl = true;
person.IsBoy = …Run Code Online (Sandbox Code Playgroud) 要么我没有看到解决方案,要么我在使用MVVM时遇到了陷阱.
我有这个样本Master-Detail:
class Customer
{
int CustomerID {get;set}
string Name {get;set}
ObservableCollection<Order> Orders {get;set}
}
class Order
{
int OrderID {get;set}
int Quantity {get;set}
double Discount {get;set}
}
Run Code Online (Sandbox Code Playgroud)
让我们在CustomerOrdersViewModel中假设我的ObservableCollection客户绑定到View via ... ="{Binding Customers}",当客户从用户更改时,相关订单通过ItemsSource ="{Binding SelectedItem.Orders"显示在DataGrid中,ElementName = comboboxCustomer}".
这可以通过MVVM实现:
我可以简单地(为了简单起见)调用添加新客户Customers.Add(new Customer(){...});.
添加后我这样做:this.RaisePropertyChanged("Customers");.这将更新视图并立即在Customer-Combobox中显示客户.
现在是MVVM不可能实现的部分.
我可以添加一个新的Order by SelectedCustomer.Orders.Add(New Order(){...});
但是我现在无法像订单上的客户那样提出CollectionChanged/PropertyChanged事件,因为订单属性未通过公共访问者绑定到View.
即使我将Orders bindable属性暴露给视图,视图本身也会关注Master-Detail切换而不是ViewModel ......
题
如何使用详细信息列表中的添加/删除对象以及在视图上立即更新来使Master-Detail工作?
当我双击 - 或者当它已经聚焦时单击一次 - 在我的DataGridTemplateColumn中的Listbox的空白区域中的项目下面时,我得到上面的错误消息.
我错了什么?
这是我的代码:
<DataGridTemplateColumn Width="0.3*" Header="Attachments">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Button>Add</Button>
<Button>Delete</Button>
<ListBox Name="itemListBox" BorderThickness="0" ItemsSource="{Binding Attachments}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="5">
<TextBlock Text="{Binding DocumentFilename}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
关于我点击"myPhotos.png"项目条目下方的图片: alt text http://666kb.com/i/bh6lbd47okwancfel.png
编辑:这个错误也已经在XAML中通过工具提示可见,只是没有看到错误工具提示......
当我单击DataGridComboBoxColumn中的单元格时,ComboBox变为可见,我可以选择项目.当我选择了一个项目时,顶部可见它很好.但是当单元格ComboBox失去焦点时,因为我在DataGrid中点击了不同的东西,所以在我之前选择的单元格中没有可见的项目/文本.
如何保留选择/选定的文本?
那就是我的代码:
<DataGridComboBoxColumn
Width="*"
Header="Monday"
DisplayMemberPath="SchoolclassName"
SelectedValueBinding="{Binding SchoolclassCodeMonday}"
ItemsSource="{Binding Source={StaticResource ClassCodes}}">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="IsSynchronizedWithCurrentItem" Value="False" />
<Setter Property="ItemsSource"
Value="{Binding Source={StaticResource ClassCodes}}" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource"
Value="{Binding Source={StaticResource ClassCodes}}" />
<Setter Property="IsDropDownOpen" Value="True" />
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
Run Code Online (Sandbox Code Playgroud)
似乎有一个解决我的问题的方法:http://wpf.codeplex.com/Thread/View.aspx? ThreadId = 46627(滚动到底部)但我无法将解决方案转移到我的问题.因为我的模型设置完全不同.
SchoolclassName是Schoolclass.cs中的字符串属性 SchoolclassCodeMonday是TimeTable.cs中的字符串属性 ClassCodes又名SchoolclassCodes是ObservableCollection类型的属性| Schoolclass |
有人知道如何修复我的绑定?
这是关于这个(注入依赖)
private readonly ICustomerService _customerService;
public Billing(ICustomerService customerService)
{
_customerService = customerService;
}
Run Code Online (Sandbox Code Playgroud)
与此相比(创建依赖关系)
private readonly ICustomerService _customerService;
public Billing()
{
_customerService = new CustomerService();
}
Run Code Online (Sandbox Code Playgroud)
后一个样本所以他们说是坏的因为......它违反了DI ...当然没有注入任何东西......但是如果DI不存在怎么办,那么客户服务是从Billing类手动创建的又是什么呢?我认为没有关于Service接口可交换性的实际优势.
我要求一个带有源代码的实际例子可能是一个单元测试或者显示一个实际的解决方案,为什么它更松散耦合.
有人热衷于展示他的DI肌肉,以及为什么它有实际的存在和应用权利?
UPDATE
所以人们都没有读完所有我会在这里写下我的短暂经历:
DI作为模式具有实际用途.通过不手动注入所有服务来跟踪DI(一个糟糕的人工DI工具,所以他们说...)使用像LightCore/Unity这样的DI框架,但一定要使用正确的工具来完成相应的工作.这是我没有;-)开发一个mvvm/wpf应用程序我有其他要求LightCore/Unity工具无法支持他们甚至是一个障碍.我的解决方案是使用MEFEDMVVM,我很高兴.现在我的服务在运行时自动注入而不是在启动时.:-)
wpf ×4
.net ×3
c# ×2
sql-server ×2
automation ×1
datatemplate ×1
exception ×1
integer ×1
is-empty ×1
linq-to-xml ×1
listbox ×1
mvvm ×1
performance ×1
recursion ×1
selecteditem ×1
sql ×1
sqldatatypes ×1
startup ×1
testing ×1
tinyint ×1
tree ×1
unit-testing ×1
xml-column ×1