在 WPF 应用程序中,我有一个 ListView 绑定到我的 ViewModel 上的 ObservableCollection。
在应用程序运行期间,我需要删除并重新加载集合中的所有项目。我永远不需要添加或删除单个项目。
这提示了一个问题,ObservableCollection 是否真的必要,我是否可以将 ListView 绑定到 IEnumerable 并在替换集合时调用 OnPropertyChanged?
由于 ObservableCollection 没有 AddRange 方法,重新加载而不替换集合的唯一方法是单独添加每个项目。由于为每个添加的项目触发 CollectionChanged,这是否可能对性能有任何重大影响?
最后,由于我使用 ICollectionView 来同步当前选定的项目,如果我确实替换了集合,我是否需要再次调用 CollectionViewSource.GetDefaultView?我假设我可以重用现有的 CurrentChanged 处理程序。
谢谢本
或者更具体地说
1)我可以为属性分配类型描述符
2)如果是这样,在运行时获取类型转换器的最佳方法是什么.
基本上我有使用反射填充的配置对象.到目前为止,这仅适用于简单类型(string,int,datetime),但我想支持将逗号分隔列表转换为List.
到目前为止,我已经通过ConvertableList<T>从List<T>我的自定义类型转换器派生自定义类型" " 和装饰来实现这一目标.
我有一个全局操作过滤器,它在OnActionExecuting事件期间设置所有ViewResults的MasterPage.
在我的许多控制器中(每个控制器代表应用程序的一个功能)我需要检查功能是否已启用,如果没有,则返回不同的视图.
这是代码:
protected override void OnActionExecuting(ActionExecutingContext filterContext) {
if (!settings.Enabled)
{
filterContext.Result = View("NotFound");
}
base.OnActionExecuting(filterContext);
}
Run Code Online (Sandbox Code Playgroud)
问题是,当设置这样的结果时,我的ActionFilter的OnActionExecuted方法不会触发,这意味着我没有应用正确的MasterPage.
我想明白为什么会这样.一个补救措施是将我的ActionFilter逻辑移动到OnResultExecuting(这确实会触发),但我仍然对OnActionExecuted为什么不这样做感到困惑.
非常感谢
本
我即将推出新的在线服务测试版.Beta用户将被发送一个唯一的"访问代码",允许他们注册该服务.
我认为我只会根据他们的电子邮件生成代码,而不是存储访问代码列表,因为这本身就是独一无二的.
我最初的想法是将电子邮件与唯一字符串组合,然后Base64对其进行编码.但是,我正在寻找更短的代码,比如长5个数字.
我们正在使用Azure工具更新中的新功能,该功能允许我们指定多个配置.像本文一样,我们有一个"本地"配置和一个"云"配置.
但是,由于我无法看到如何指定"默认"配置,哪一个用于模拟器?
我们在不同的分支机构为我们的应用开发新模块.测试完成后,它们将合并到默认分支中.当我们需要对模块进行更改时,我们重新打开分支,进行更改,测试并最终再次合并到默认分支中.
偶尔在更新模块时,我们会识别核心代码中的错误.我们经常会修复错误,然后将更改提交回默认分支.但是,因为我们在模块分支中,所以我们必须重新打开"默认".
这没有达到预期的效果,因为我们最终得到了2个默认分支.
那么当你在另一个分支中而不丢失变化时,提交"默认"的正确方法是什么?(最好使用TortoiseHg).
下面是TortoiseHg对话框的屏幕截图,我在其中选择"默认"分支,然后是图形.

我正在使用jQuery制作跨域AJAX请求,但我的回调函数没有触发(请参阅http://jsfiddle.net/zC8z5/).
function jsonpCallback(response){
$('#code').text(response.data);
}
$.ajax({
url: url,
dataType: 'jsonp',
error: function(xhr, status, error) {
alert(error);
},
success: function() {
alert("success");
},
jsonp: false,
jsonpCallback: 'jsonpCallback'
});
Run Code Online (Sandbox Code Playgroud)
根据文档:
从jQuery 1.5开始,将jsonp选项设置为false可防止jQuery将"?callback"字符串添加到URL或尝试使用"=?" 转型.在这种情况下,您还应该显式设置jsonpCallback设置.例如,{jsonp:false,jsonpCallback:"callbackName"}
但是,如果我没有指定回调而只是处理成功事件中的数据,那么它就可以工作(参见http://jsfiddle.net/2gBRT/).
$.ajax({
url: url,
dataType: 'jsonp',
error: function(xhr, status, error) {
alert(error);
},
success: function(data) {
jsonpCallback(data);
}
});
Run Code Online (Sandbox Code Playgroud)
我是否误解了如何使用jQuery发出JSONP请求?
在一个应用程序中,我们建模Company为一个实体和Address一个值对象:
public class Company : Entity {
public Address PrimaryAddress { get; set; }
public Address SecondaryAddress { get; set; }
}
public class Address : ValueObject {
public string ZipCode { get; private set; } // etc.
public Address(string zipCode) {
ZipCode = zipCode;
}
}
Run Code Online (Sandbox Code Playgroud)
在这里,Address没有身份并且是不可变的。为了更新PrimaryAddress公司,我用一个新Address对象替换它。
但是,在进一步发现域后,我们发现公司可能拥有可变数量的地址。将它们表示为单独的属性不再可行。所以我们重构了Company:
public class Company : Entity {
public Address[] AddressBook { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我们现在有一个问题是如何更新公司的Address. 我们现在 …
为了在ASP.NET WebApi中刷新对RavenDB的更改,我创建了以下Action Filter:
public class RavenDbUnitOfWorkAttribute : ActionFilterAttribute
{
public Func<IDocumentSession> SessionFactory { get; set; }
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
var session = SessionFactory.Invoke();
if (session != null && actionExecutedContext.Exception == null)
{
session.SaveChanges();
}
base.OnActionExecuted(actionExecutedContext);
}
}
Run Code Online (Sandbox Code Playgroud)
为了注入,IDocumentSession我创建了一个IFilterProvider循环遍历每个过滤器的自定义,并使用setter注入(StructureMap)设置任何依赖项.
我想知道IFilterProvider作用域的实例.阅读这篇文章,看起来每个请求都会创建控制器.
目前,我正在IDocumentSession使用StructureMap 明确确定每个请求的范围.问题是,如果我依赖IDependencyScope(使用嵌套容器)将相同的实例IDocumentSession注入我的Action Filter?
进一步测试似乎Action Filters不使用与Controller相同的依赖范围.我宁愿不在控制器中使用代码来刷新会话.
鉴于以下标记:
<ul>
<li><span>One</span></li>
<li><span>Two</span></li>
<li><span>Three</span></li>
<li><span>Four</span></li>
<li><span>Five</span></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
以下CSS:
body {
font-family: Arial, sans-serif;
font-size: 14px;
}
ul {
list-style-type: none;
padding: 0;
margin: 0;
}
li {
border-bottom: 1px solid red;
float: left;
margin-left: 10px;
height: 70px; /* height of largest element */
}
span {
font-weight: bold;
display: block; /* important, needs to be block */
}
li:nth-child(2) {
font-size: 2em;
}
li:nth-child(3) {
font-size: 3em;
}
li:nth-child(4) {
font-size: 4em;
}
li:nth-child(5) {
font-size: 5em;
}
Run Code Online (Sandbox Code Playgroud)
每个列表项包含不同大小的文本. …
.net ×2
c# ×2
azure ×1
css ×1
html ×1
jquery ×1
mercurial ×1
ravendb ×1
reflection ×1
structuremap ×1
tortoisehg ×1
wpf ×1