从这个链接我断言一个功能是一组积压项目,但什么是史诗应该是什么?
我在我的标准上做了一些简单的MS单元测试,没有什么特别的控制器.
当我检查属性时,ViewName
从返回的ViewResult
对象中,它是""
(空的).
我的印象ViewName
是它的名称暗示View
(正如这篇 关于ASP.NET MVC控制器测试的MS文章所建议的那样).
顺便说一句,当我测试ViewData时,它就在那里并且正确.
这是我的代码......
public ActionResult Index(int? page, string tag)
{
if (page == null || page <= 0)
{
page = 1;
}
var viewData = new IndexViewData
{
... my property setters, etc ...
};
return View(viewData);
}
[TestMethod]
public void Index_Action_Should_Return_Index_View_For_Default_HomePage()
{
// Arrange.
var controller = PostController; // Wrapper, cause I use D.I.
// Act.
ViewResult viewResult = …
Run Code Online (Sandbox Code Playgroud) 如何在同一字段上多次使用相同的自定义验证属性,或者只是为服务器端和客户端验证启用AllowMultiple = true?
我有以下自定义验证属性:
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property,
AllowMultiple = true, Inherited = true)]
public class RequiredIfAttribute : ValidationAttribute,IClientValidatable
{
public RequiredIfAttribute(string dependentProperties,
string dependentValues = "",
string requiredValue = "val")
{
}
}
Run Code Online (Sandbox Code Playgroud)
在dependentProperties中,我可以指定由逗号分隔的多个依赖属性,在dependentValues中,我可以指定依赖属性验证应该处理哪些值,最后在requiredValue中,我可以指定要验证的字段的期望值.
在我的模型中有两个属性LandMark,PinCode和我想使用验证如下:
public string LandMark { get; set; }
[RequiredIf("LandMark","XYZ","500500")]
[RequiredIf("LandMark", "ABC", "500505")]
public string PinCode { get; set; }
Run Code Online (Sandbox Code Playgroud)
这里的值只是例如,因为似乎我可以多次添加属性并且不会出现任何编译错误,我已经在属性中实现了TypeID,如果我从中删除客户端验证,它在服务器端运行良好.但是当我在属性上实现IClientValidatable时,它给了我一个错误:
"不引人注目的客户端验证规则中的验证类型名称必须是唯一的."
任何帮助我该如何解决?
如何将现有项目从GitHub移动到Visual Studio Online,并保留所有更改历史记录?并且(如果可能的话)避免命令提示.:$
实际上我试过从博客文章给出的命令提示,但失败了.(git remote add https:github.com/xxx/xxx/xxx.git,它说:设置远程作为镜像来推送或获取.)
(顺便说一句,是否可以在GitHub和Visual studio online上同步项目?)
谢谢.
在 Sql Server Management Studio 中修改现有存储过程的架构的最简单方法是什么?
我设计了一个MVVM WPF应用程序,并且拥有一个ViewModel,它具有一个名为SelectedCustomer的属性,类型为Customer.该对象有一个名为SummaryDetails的属性,类型为ObservableCollection,它逐行呈现为ListView.
为此,我在ViewModel上创建了一个名为CustomerSummaryDetails的独立属性,它只包含一个get,它返回我上面提到的客户中包含的集合.
在XAML中,我将ItemsSource绑定到CustomerSummaryDetails属性.
这样我就不必绑定到SelectedCustomer.SummaryDetails,这不是那么干净.
SelectedCustomer属性具有get和set方法,set为OTHER属性CustomerSummaryDetails调用OnPropertyChanged,让XAML知道底层集合已更改并更新.
问题是,当我更新集合中的项目时,尽管调用了所有正确的事件,但它并没有反映在GUI上.我已经介入并调用了SelectedCustomer的set方法,然后我按照OnPropertyChanged("CustomerSummaryDetails")调用进入CustomerSummaryDetails属性的"get"方法,如预期的那样.我已经深入研究了返回集合的值,并且列表中的值是更新后的值,但是没有任何内容反映在GUI上,所以我很困惑,因为看起来GUI正在调用get方法来更新它在OnPropertyChanged()调用上,但它没有在视觉上反映.
更新 - 包含的代码
很抱歉不包括代码,我认为只是描述会更容易,但这里是主要的ViewModel属性
public CustomerSummaryViewModel SelectedCustomer
{
get { return _selectedCustomer; }
set
{
_selectedCustomer = value;
OnPropertyChanged("CustomerSummaryDetails");
}
}
public ObservableCollection<RbcUICustomerSummary> CustomerSummaryDetails
{
get { return _selectedCustomer.SummaryDetails; }
}
public ItemSummaryViewModel SelectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
OnPropertyChanged("SelectedItem");
}
}
Run Code Online (Sandbox Code Playgroud)
XAML如下
<ListView x:Name="lvCustomerSummary" Margin="10,10,10,10" Background="#F4F8FB" ItemsSource="{Binding CustomerSummaryDetails}" MouseDoubleClick="lvCustomerSummary_MouseDoubleClick" ItemContainerStyle="{StaticResource myHeaderStyleColor}" VirtualizingStackPanel.IsVirtualizing="False" VirtualizingStackPanel.VirtualizationMode="Recycling">
<ListView.View>
<GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">
<GridView.Columns>
<GridViewColumn Header="" >
<GridViewColumn.CellTemplate>
<DataTemplate >
<Grid>
<Image …
Run Code Online (Sandbox Code Playgroud) 在网格内有一个 DataGrid,我想让数据网格宽度和数据网格列自动适合父控件。
\n\n因此,如果用户决定增加窗口宽度,如何使网格宽度及其列也增加?
\n\n<Window x:Class="AME.WpfBidouille.MainWindow"\n xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"\n xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"\n Title="MainWindow" Height="350" Width="525">\n <Grid>\n <DataGrid> \n <DataGrid.Columns>\n <DataGridTextColumn Header="Publication date"/>\n <DataGridTextColumn Header="A very large field to be displayed"/>\n <DataGridTextColumn Header="N\xc2\xb0 Omega" />\n <DataGridTextColumn Header="Cr\xc3\xa9e le" />\n <DataGridTextColumn Header="Login" />\n <DataGridTextColumn Header="Demandeur" />\n <DataGridTextColumn Header="Type" />\n <DataGridTextColumn Header="Status" />\n </DataGrid.Columns>\n </DataGrid>\n </Grid>\n</Window>\n
Run Code Online (Sandbox Code Playgroud)\n 双击项目用于切换其文件的可见性,但现在它会打开 csproj 文件。\n这与我们\xe2\x80\x99 多年来在 VS 中的行为不同。\xe2\x80\x99 并不经常需要编辑 csproj 文件。是否有任何选项或调整可以恢复像以前一样的切换行为?
\nazure-devops ×2
c# ×2
tfs ×2
wpf ×2
agile ×1
asp.net-mvc ×1
controller ×1
git ×1
github ×1
mvvm ×1
scrum ×1
sql-server ×1
ssms ×1
t-sql ×1
unit-testing ×1
wpfdatagrid ×1
xaml ×1