小编Sti*_*gar的帖子

Windows Phone Toolkit上下文菜单项在删除项目然后添加项目时绑定了错误的对象

我刚刚遇到上下文菜单的一个严重问题,我几个小时都无法解决.

为了重现这个问题,我在Visual Studio 2012中使用Windows Phone 8的应用程序模板创建了一个全新的Panorama应用程序.我通过nugget安装了Windows Phone工具包,并在绑定到Items的第一个长列表选择器的数据模板中添加了上下文菜单

<StackPanel Margin="0,-6,0,12">
    <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="{StaticResource PhoneFontSizeExtraLarge}"/>
    <toolkit:ContextMenuService.ContextMenu>
        <toolkit:ContextMenu>
            <toolkit:MenuItem Header="{Binding LineOne}" Click="MenuItem_Click_1" Tag="{Binding}">
            </toolkit:MenuItem>
        </toolkit:ContextMenu>
    </toolkit:ContextMenuService.ContextMenu>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

我将标题设置为LineOne属性以便于调试.我附上了以下事件:

private void MenuItem_Click_1(object sender, RoutedEventArgs e)
{
    var itemViewModel = (ItemViewModel)((MenuItem)sender).Tag;
    App.ViewModel.Items.Remove(itemViewModel);
    App.ViewModel.Items.Add(new ItemViewModel { LineOne = "Test", LineTwo = "Test", LineThree = "Test" });
}
Run Code Online (Sandbox Code Playgroud)

我运行应用程序并使用上下文菜单删除第一个项目.第一个项目消失,名为Test的新项目按预期显示在列表底部.如果我持有这个新项目,则菜单项被绑定到"runtime one"(已删除的项目).

这是我可以重现错误的最简单的代码,但在我的真实应用程序中,我有相同的问题,更有意义的代码用于在不同的方法甚至不同的页面中添加和删除.我有一个命令绑定,但由于数据绑定错误,命令在错误的视图模型中使用错误的参数运行.

知道为什么会这样吗?

silverlight silverlight-toolkit windows-phone

4
推荐指数
2
解决办法
1528
查看次数

无法让Ninject在Request Scope中处理对象

无论我做什么,我似乎无法让Ninject在带有Web API的ASP.NET MVC应用程序中处理请求范围内的对象.

我在做什么:

  • 使用Visual Studio 2013创建一个新的ASP.NET Web应用程序.我选择MVC模板并向其添加Web API(默认情况下它还包含ASP.NET标识)
  • 我通过nuget安装Ninject.MVC5包(install-package Ninject.MVC5)
  • 我在我的应用程序中添加了以下类:

    public class SomeDisposable:IDisposable {public void Dispose(){System.Diagnostics.Debug.WriteLine("test"); }}

  • 我在NinjectWebCommon RegisterServices方法中添加以下绑定

    kernel.Bind()ToSelf()InRequestScope().;

  • 我将一个SomeDisposable类型的对象添加到Home控制器

    public HomeController(SomeDisposable some){}

  • 我运行应用程序并在HomeController构造函数和SomeDisposable类的Dispose方法中放置一个断点.控制器接收一个对象(可能来自Ninject),页面加载但从不调用Dispose方法.

  • 在这一点上,事情已经破碎,但我添加了一个Web API控制器,安装Ninject.WebApi打包并使用WebAPI控制器重复实验,我得到了相同的结果.

我已经阅读了很多问题,包括这一个问题 - 当超出范围时,Ninject不会调用对象上的Dispose和Ninject文档https://github.com/ninject/Ninject.Web.Common/wiki/InRequestScope,它们都表示由于Ninject.Web.Common包含了对OnePerRequestHttpModule的注册(是的,它存在),因此处理应该正常工作,但事实并非如此.我还尝试在web.config中添加PerRequest模块,并收到错误消息,说我不能在集成模式下使用此部分.

此时我迷失了.我怀疑集成模式或OWIN与此有关,但我不知道如何调试它或如何解决它.有什么建议?

c# asp.net asp.net-mvc ninject asp.net-web-api

4
推荐指数
1
解决办法
2058
查看次数

如何在 AvaloniaUI(测试版)中显示消息框

我正在玩Avalonia并且我试图显示一个相当于 WinForms 的消息框MessageBox.Show()。我发现GitHub 问题正在为此请求 API,但我想知道人们在此期间在做什么。

我们是否需要实现一个像消息框一样的窗口或用户控件并通过ShowDialog显示它?

.net c# avaloniaui

4
推荐指数
2
解决办法
4236
查看次数

带有IIS7集成模式的静态内容角色的ASP.NET身份验证

我正在试验IIS7中静态内容的集成身份验证模式.我按照本文中的说明操作:http://aspnet.4guysfromrolla.com/articles/122408-1.aspx 如果我通过登录状态允许/拒绝访问(如文章中所述),它工作正常.但是,我想基于角色允许/拒绝访问(使用内置于角色提供程序中的ASP.NET).当我为web.config中的角色"Admin"设置允许规则并拒绝所有其他用户的规则时,即使我以管理员身份登录,我也无法访问静态文件.同一文件夹包含非静态内容(aspx页面),可根据角色提供程序信息进行访问.

有任何想法吗?

asp.net iis-7 integrated-pipeline-mode

3
推荐指数
1
解决办法
3004
查看次数

实体框架6代码第一外键没有对应的属性

我的表格看起来像这样

Users
 - UserID (PK)
 - UserName
 - ...

UserSettings
 - UserID (PK)
 - Settings
Run Code Online (Sandbox Code Playgroud)

我的UserSetting实体看起来像这样

public class UserSetting
{
    public UserSetting()
    {
    }

    [Key]
    [Column("UserID", TypeName ="nvarchar(128)")]
    public string ID { get; set; }

    [Required]
    public string Settings { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望UserSettings的PK将User中的UserID中的FK添加到UserSettings中的UserID,因为该关系应该是1:1(如果您想知道settings字段是一个字符串,前端只是在数据库中转储为json字符串和后端不关心里面的值)

如果我手动创建数据库并添加外键并且EF对此一无所知,这可以正常工作但我决定尝试让EF为此项目创建数据库.有没有办法告诉EF创建该FK而不添加与任一实体的关系的实体属性?

c# entity-framework

2
推荐指数
1
解决办法
3749
查看次数

为什么WinRT中的String类不实现IEnumerable <Char>

看起来WinRT版本的.NET中的字符串类没有实现IEnumerable.我想知道他们为什么这样做呢?

.net windows-runtime

1
推荐指数
1
解决办法
183
查看次数