小编Raz*_*zie的帖子

WPF - 设置DataTemplate以编程方式添加GridViewColumns

找不到这个答案.

我有一个WPF ListView控件,可以包含不同数量的列.例如,它可以显示客户数据,显示列ID,名称,电子邮件等,或者它可以包含产品,显示ID,名称,价格,NumberInStock,制造商,以及你得到的想法:不同数量的列,不同的名称.

我想要做的是,某些列以不同的方式显示数据.例如,我不想打印"是"或"否"作为NumberInStock列的值,而是想显示一个整洁的图像.

如果我有固定数量的列,并且要绑定固定名称,我会看到这很简单.只需为该特定列定义DataTemplate,我就可以使用它来定义列的视图.但是,在我的情况下,我无法看到如何做到这一点.

我是WPF的新手,请原谅我,如果我的方法不好:-)在我的XAML中,我已经定义了一个ListView控件,它几乎是空的.在我的代码背后,我使用:

    // get all columns from my objects (which can be either a Customer of Product)
    foreach (string columnName in MyObject.Columns)
        {
          GridViewColumn column = new GridViewColumn();
          // Bind to a property of my object
          column.DisplayMemberBinding = new Binding("MyObject." + columnName);
          column.Header = columnName;
          column.Width = 50;
          // If the columnname is number of stock, set the template to a specific datatemplate defined in XAML
          if (columnName == "NumberInStock")
            column.CellTemplate = (DataTemplate)FindResource("numberInStockImageTemplate");
          explorerGrid.Columns.Add(column);
        }
Run Code Online (Sandbox Code Playgroud)

好吧,我相信这可以做得更漂亮一点(如果你有任何建议,请!)但最大的问题是我看不到专栏中的任何差异.它只显示"NumberInStock"列的文本值.我的DataTemplate在XAML中定义: …

wpf listview datatemplate

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

登录后立即在 ActionFilter 中检查 User.Identity.IsAuthenticated

我基本上使用 ASP.NET MVC 示例中的 AccountController。它使用 FormsAuthentication 来处理用户登录。可以肯定的是,这里是处理用户登录的代码:

    public ActionResult LogOn(string userName, string password, bool rememberMe, string returnUrl)
    {
      if (!ValidateLogOn(userName, password))
      {
        return View();
      }

      FormsAuth.SignIn(userName, rememberMe);


      //Session["userId"] = 1;


      if (!String.IsNullOrEmpty(returnUrl))
      {
        return Redirect(returnUrl);
      }
      else
      {
        return RedirectToAction("Index", "Home");
      }
    }
Run Code Online (Sandbox Code Playgroud)

从注释行中可以看出,我想在此方法中设置一个 Session 变量。但是,我认为这不是直接在控制器中设置 Session 变量的最优雅的方式。对这个方法进行单元测试也很不方便(虽然我可以模拟它,当然,但仍然如此)。

所以,我想,我创建了一个在此登录例程之后运行的自定义 ActionFilterAttribute。如果登录成功,请在此自定义属性中设置会话变量。代码如下:

  public class SetSessionAttribute : ActionFilterAttribute
  {
    public override void OnResultExecuted(ResultExecutedContext resultContext)
    {      
      if (resultContext.HttpContext.User.Identity.IsAuthenticated)
      {
        resultContext.HttpContext.Session["userId"] = 1;
      }

      base.OnResultExecuted(resultContext);
    }
  }
Run Code Online (Sandbox Code Playgroud)

问题是User.Identity.IsAuthenticated在下一次“页面加载”之前总是返回 false。我正在重写,OnResultExecuted因为我认为它是页面生命周期中最后一个要调用的方法,但没有运气。我也试过OnActionExecuting, …

asp.net-mvc forms-authentication action-filter

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

ASP.NET Core CookieAuthenticationOptions.LoginPath在不同的域上

CookieAuthenticationOptions用于在.NET Core应用程序中配置身份验证,但是我的登录页面位于其他域上。但是,该LoginPath属性仅允许内部路径,而不允许完整的URI。所以下面的代码:

var cookieOptions = new CookieAuthenticationOptions()
{
    AuthenticationScheme = "Cookies",
    LoginPath = new PathString("https://externaldomain.com/login"),
    CookieName = string.Format("myCookie"),
};

app.UseCookieAuthentication(cookieOptions);
Run Code Online (Sandbox Code Playgroud)

... 是无效的。这应该相当简单,还是我在这里遗漏了一些东西?我不希望在应用程序内部处理此问题,而自己进行实际的重定向。那有点la脚。

asp.net-core

5
推荐指数
2
解决办法
1834
查看次数

服务器应用不可用?在asp.net?

我上传时,我的网络应用程序在线,当我输入网址时,我收到此错误..

Server Application Unavailable.
The web application you are attempting to access on this web server is currently unavailable.  Please hit the "Refresh" button in your web browser to retry your request. 
Run Code Online (Sandbox Code Playgroud)

你能帮我谢谢吗

asp.net

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

从类加载器看不到接口

我是新手!框架和使用wsdl2java工具.我正在开发一个游戏!需要与SOAP Web服务交互的应用程序.我有WSDL并使用jaxws从中创建对象.它正在创建一堆java类和1个接口.一旦我尝试进行webservice调用,我就会收到类加载器无法找到接口的错误.这是我的代码:

MyWebserviceBeanService service = new MyWebserviceBeanService();
MyWebserviceRemote mwr = service.getMyWebserviceBeanPort();
LoginResponse response = mwr.loginUser("xxx", "xxx");
Run Code Online (Sandbox Code Playgroud)

请注意,'MyWebserviceRemote'是接口.代码getMyWebserviceBeanPort很常见,因为它是自动生成的,但它是:

@WebEndpoint(name = "MyWebserviceBeanPort")
public MyWebserviceRemote getMyWebserviceBeanPort() {
    return super.getPort(new QName("http://xxxxxxxxxx/", "MyWebserviceBeanPort"), MyWebserviceRemote.class);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试调用方法时,例如loginUser上面的方法,我得到以下stacktrace:

play.exceptions.JavaExecutionException: interface xxxx.xxxx.xxxx.MyWebserviceRemote is not visible from class loader
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:237)
    at Invocation.HTTP Request(Play!)
Caused by: java.lang.IllegalArgumentException: interface xxxx.xxxxx.xxxx.MyWebserviceRemote is not visible from class loader
    at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:736)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:408)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:384)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:366)
    at javax.xml.ws.Service.getPort(Service.java:119)
    at xxxx.xxxx.xxxx.MyWebserviceBeanService.getMyWebserviceBeanPort(MyWebserviceBeanService.java:72)
    at controllers.MyController.index(MyController.java:26)
    at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:557)
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:508)
    at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:484) …
Run Code Online (Sandbox Code Playgroud)

wsdl2java classloader playframework

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

从PHP打开记事本

我想从php文件打开一个记事本,记事本应该包含我在php文件中声明为字符串的文本.基本上一个记事本应该打开我从php文件传递的文本.

php string notepad

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