小编mau*_*kye的帖子

MVVM列表框更新内容维护选定项目Silverlight

我一直在阅读很多关于MVVM(特别是使用Laurent Bugnion的库)的文章,而且我一直在努力确定如何在MVVM中做一些事情,而这些事情在代码背后很容易实现.

这里只是一个例子,我怀疑自己正在以艰难的方式做事.如果有人有时间阅读这些内容,也许他们可以评论我的方法的合理性.:)

我有一个绑定到ViewModel的列表框,如下所示:

<ListBox x:Name="lstFruitBasketLeft" ItemsSource="{Binding FruitBasket}" 
     SelectedItem="{Binding SelectedFruit, Mode=TwoWay}"  Width="150">
<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal" VerticalAlignment="Center" 
                    HorizontalAlignment="Left" Margin="2">
            <TextBlock Text="{Binding Name}" />
            <TextBlock Text=":" />
            <TextBlock Text="{Binding Quantity}" />
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

ItemSource是Fruit对象的ObservableCollection:

public class Fruit
{
    public string Name { get; set; }
    public int Quantity { get; set; }

    public Fruit() { }
    public Fruit(string name, int quantity) 
    {
      this.Name = name;
      this.Quantity = quantity;
    }
  }
Run Code Online (Sandbox Code Playgroud)

它在ViewModel中定义为:

// Property FruitBasket
public const string FruitBasketPropertyName = "FruitBasket"; …
Run Code Online (Sandbox Code Playgroud)

silverlight binding command listbox mvvm

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

SqlMembershipProvider Membership.GetUser名称失败

这个问题 ,如果我使用GUID Membership.GetUser工作正常,但如果我尝试不带参数或名称失败:

//This works and adds records to aspnet_user & aspnet_Membership tables
MembershipUser membershipUser = Membership.CreateUser(_name, _pwd, _email, null, null, true, null, out createStatus); 

//These fail with an InvalidCastException
MembershipUser membershipUser2 = Membership.GetUser(_name, true);
MembershipUser membershipUser3 = Membership.GetUser();

//If I go look up the GUID for this user (userId), this works!
MembershipUser membershipUser4 = Membership.GetUser(new Guid("E1428CD3-CF17-494E-AB77-CF8F6010F585"), true);
Run Code Online (Sandbox Code Playgroud)

其他之谜

//This works
Int32 count = Membership.GetNumberOfUsersOnline();    

//this fails (but totalRecords has the right value)
Int32 totalRecords;
MembershipUserCollection col = Membership.GetAllUsers(0,100, out …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc exception-handling sqlmembershipprovider

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

Silverlight默认ContentPresenter内容

为什么这不起作用?

generic.xaml中,用于自定义控件:

在应用于自定义控件的样式中...

<Setter Property="ChromeContent">
  <Setter.Value>
    <Grid />
  </Setter.Value>
</Setter>
Run Code Online (Sandbox Code Playgroud)

...

后来,在控件模板中......

<ContentPresenter Grid.Column="0" 
     x:Name="ChromeContentPresenter" 
     Content="{TemplateBinding ChromeContent}" />
Run Code Online (Sandbox Code Playgroud)

这是ChromeContent的依赖属性...

public Object ChromeContent
{
  get { return (Object)GetValue(ChromeContentProperty); }
  set { SetValue(ChromeContentProperty, value); }
}
public static readonly DependencyProperty ChromeContentProperty =
    DependencyProperty.Register("ChromeContent", typeof(Object), 
    typeof(casPopup), null);
Run Code Online (Sandbox Code Playgroud)

如您所见,它需要任何对象.我尝试将其更改为网格,但这没有帮助.

它抛出此错误(来自javascript):_无法分配给属性'System.Windows.Controls.ContentPresenter.Content'

奇怪的是,如果我从setter中删除网格并使用文本,以下内容将正常工作:

<Setter Property="ChromeContent" Value="DEFAULT" />
Run Code Online (Sandbox Code Playgroud)

此外,这也适用于控件类中的OnApplyTemplate方法:

  Grid g = new Grid();
  g.Width = 100;
  g.Height = 25;
  g.Background = new SolidColorBrush(Colors.LightGray);
  ChromeContent = g;
Run Code Online (Sandbox Code Playgroud)

我很难理解什么阻止了网格的默认内容,在generic.xaml中定义了.有没有人对此事有任何了解?

非常感谢您的帮助!

silverlight default custom-controls contentpresenter

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

Express.js sendFile返回ECONNABORTED

在运行Express(3.8.6)的简单节点服务器上。我正在尝试使用sendFile将简单的HTML文件发送到客户端。

  • 从读取的文件来看,该路径是正确的。
  • 在浏览器上禁用了缓存。
  • 显示的代码是server.js文件,直接从节点运行

我想念什么?

//server.js

var http = require("http");
var express = require("express");
var app = express();
var server = http.createServer(app);
var path = require('path');

//Server views folder as a static in case that's required for sendFile(??)    
app.use('/views', express.static('views'));
var myPath = path.resolve("./views/lobbyView.html");

// File Testing
//--------------------------
//This works fine and dumps the file to my console window
var fs = require('fs');
fs.readFile(myPath, 'utf8', function (err,data) {
  console.log (err ? err : data);
});

// Send File Testing …
Run Code Online (Sandbox Code Playgroud)

node.js express

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