小编Dav*_*son的帖子

为什么使用RelayCommand或DelegateCommand而不是仅仅实现ICommand?

我刚学习WPF中的MVVM,我对WPF和MVVM都是全新的(我理解它是如何工作的,但从未使用它......)

我在网上找到的每一篇教程/文章都使用了RelayCommand或DelegateCommand.

在我的观察中,这些模式迫使VM违反SRP原则,因为它将把命令逻辑保存在其中.

为什么不使用ICommand接口的自定义实现?像这样:

想象一下,您正在显示一个人并将其保存到数据库中:

我的Xaml就是这样的:

<StackPanel>                         
    <TextBlock Width="248" Height="24" Text="The name is:: " />
    <TextBlock Width="248" Height="24" Text="{Binding Name}">            
    </TextBlock>
    <TextBox HorizontalAlignment="Left" Name="textBox1" Width="120" Height="23" 
             VerticalAlignment="Top" Text="{Binding Name}"
             />
    <Button  Name="Salvar" VerticalAlignment="Bottom" 
            Command="{Binding SavePerson}" 
            CommandParameter="{Binding}">Save</Button>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

这是我的VM:

public class PersonVM: INotifyPropertyChanged
{
    private string nameValue;

    public string Name
    {
        get{
            return nameValue;
        }
        set
        {
            if (value != this.nameValue)
            {
                this.nameValue= value;
                NotifyPropertyChanged("Name");
            }
        }
    }


    public ICommand SavePerson{ get { return new SavePersonCommand(); } }
    #region INotifyPropertyChanged Members …
Run Code Online (Sandbox Code Playgroud)

wpf mvvm relaycommand delegatecommand

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

使用一对多关联优化实体框架4.1中LINQ查询生成的SQL

我对LINQ生成的Sql查询有一些问题,因为我的环境很大,我做了一个反映我的问题的简单例子.

这是我的模特:

public class ClassA
{
    public int ID { get; set; }
    public virtual ICollection<ClassB> Children { get; set; }
}

public class ClassB
{
    public int ID { get; set; }
    public string Data { get; set; }
}

public class ClassC
{
    public int ID { get; set; }
    public virtual ICollection<ClassB> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

很简单吧?

嗯,这是我的查询:

var classA = (from x in db.ClassAs
             where x.ID == 2
             select x).First();
var classesB = (from …
Run Code Online (Sandbox Code Playgroud)

c# linq sql-server query-optimization entity-framework-4.1

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

Coffeescript相当于Python的getattr

在python中,我可以在运行时将函数放入变量,然后使用getattr函数调用它

method = getattr(self,self.name)
method()
Run Code Online (Sandbox Code Playgroud)

在Coffeescript中有类似的方法吗?谢谢!


使用zeekay建议但使用类将是:

class Test
   foo: -> alert 'foo'
   foo2: methodName -> this[methodName]()

x = new Test
x.foo2('foo')
Run Code Online (Sandbox Code Playgroud)

javascript python coffeescript

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

使用Simple Facebook API登录时出现异常(会话:尝试打开具有待处理请求的会话)

我正在使用Simple Facebook API for Android,我在这里面临一个问题.

我正在使用他们网站上的代码登录https://github.com/sromku/android-simple-facebook并获取个人资料信息.

有用.当我点击我的"登录"按钮时,它会显示Facebook登录页面,然后在登录后转到授权并返回我的应用程序并运行.

但是,如果我点击登录,然后关闭使用Facebook登录页面打开的LoginDialog,并尝试再次登录我得到以下异常:

错误/ Facebook(17472):发生了不好的事情java.lang.UnsupportedOperationException:Session:尝试打开一个有待处理请求的会话.com.facebook.Session.open(Session.java:958)at com.facebook.Session.openForRead(Session.java:388)at com.sromku.simple.fb.SimpleFacebook.openSession(SimpleFacebook.java:680)at at com.sromku.simple.fb.SimpleFacebook.login(SimpleFacebook.java:255)

有任何想法吗?

java android facebook

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

颜色/线条标签在ggplot中按字母顺序排序.怎么避免?

我正在尝试从同一图表上的数据集中绘制3行,并使用ggplot2显示它们.我想手动设置每行的颜色和形状.

问题是颜色/形状是根据标签的词典顺序设置的,我似乎对所选择的内容没有任何控制.

这就是我尝试过的:

px <- 
    ggplot(dataset) + 
    stat_smooth(aes(x=id, y=dataset[,4], colour="2000",  linetype="2000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
    stat_smooth(aes(x=id, y=dataset[,3], colour="500",  linetype="500"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
    stat_smooth(aes(x=id, y=dataset[,2], colour="1000", linetype="1000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +    
    theme(legend.title=element_blank()) +
    xlab("x") +
    ylab("y") +
    ggtitle("px") 

py <- 
    ggplot(dataset) + 
    stat_smooth(aes(x=id, y=dataset[,4], colour="1000",  linetype="1000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
    stat_smooth(aes(x=id, y=dataset[,3], colour="500",  linetype="500"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +
    stat_smooth(aes(x=id, y=dataset[,2], colour="2000", linetype="2000"),se=FALSE, size=1, span=0.1, level=0.90, method="loess") +    
    theme(legend.title=element_blank()) +
    xlab("x") +
    ylab("y") +
    ggtitle("py") 
pz …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

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