问题列表 - 第25924页

LINQ-to-XML to DataGridView:无法编辑字段 - 如何修复?

我目前正在使用LINQ-to-XML并使用我的查询填充DataGridView.我遇到的麻烦是,一旦加载到DataGridView中,值似乎是不可编辑的(ReadOnly).这是我的代码:

var barcodes = (from src in xmldoc.Descendants("Container")
                where src.Descendants().Count() > 0
                select
                new
                {
                   Id = (string)src.Element("Id"),
                   Barcode = (string)src.Element("Barcode"),
                   Quantity = float.Parse((string)src.Element("Quantity").Attribute("value"))
                }).Distinct();

dataGridView1.DataSource = barcodes.ToList();
Run Code Online (Sandbox Code Playgroud)

我在某处读到"使用匿名类型时,DataGridView将处于ReadOnly模式".但我无法找到解释为什么或究竟该怎么办.

有任何想法吗?

编辑 - 这是我想出的答案......

所以我添加了一个"容器"类(使用Get和Set < - 非常重要!)以避免Anonymous类型成为ReadOnly问题:

    public class Container
    {
        public string Id { get; set; }
        public string Barcode { get; set; }
        public float Quantity { get; set; }
    }

    // For use with the Distinct() operator
    public class ContainerComparer : IEqualityComparer<Container>
    {
        public bool Equals(Container x, …
Run Code Online (Sandbox Code Playgroud)

c# linq datagridview linq-to-xml c#-3.0

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

实现此复合GetHashCode()的最佳方法是什么

我有一个简单的课程:

public class TileName {
    int Zoom, X, Y;

    public override bool Equals (object obj)
    {
        var o = obj as TileName;
        return (o != null) && (o.Zoom == Zoom) && (o.X == X) && (o.Y == Y);
    }

    public override int GetHashCode ()
    {
        return (Zoom + X + Y).GetHashCode();
    }
}
Run Code Online (Sandbox Code Playgroud)

我很好奇,如果我做了类似的事情,我会得到更好的哈希码分布:

    public override int GetHashCode ()
    {
        return Zoom.GetHashCode() + X.GetHashCode() + Y.GetHashCode();
    }
Run Code Online (Sandbox Code Playgroud)

这个类将被用作Dictionary键,所以我确实希望确保有一个不错的发行版.

.net c# hash computer-science

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

使用中央服务器的操作转换,如何与多个客户端进行实时协作?

我刚刚在Jupiter Collaboration System中读完了高延迟,低带宽窗口,我大部分都遵循了所有内容,直到第6部分:全局一致性.本部分描述了如何扩展本文中描述的系统以适应连接到服务器的多个客户端.但是,解释非常简短,并且基本上说如果中央服务器仅将客户端消息转发给所有其他客户端,则系统将起作用.我真的不明白这是如何工作的.在发送给所有其他客户端的消息中将发送什么状态向量?服务器是否为每个客户端维护单独的状态向量?它是否为每个客户端在本地维护单独的小部件副本?

我能想到的一个简单示例就是这样的设置:想象客户端A,服务器和客户端B,客户端A和客户端B都连接到服务器.首先,这三个都有状态对象"ABCD".然后,客户端A在服务器发送消息"在位置0插入字符G"的同时发送消息"在位置0插入字符F".似乎只是将客户端A的消息中继到客户端B,反之亦然,实际上并不处理这种情况.那么服务器究竟做了什么呢?

collaboration client-server real-time

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

Silverlight 4 WCF RIA服务和MVVM并不那么简单

[免责声明:我是ASP.NET MVC开发人员]

嗨,

我正在寻找一些在Silverlight 4中使用WCF RIA实现MVVM模式的最佳实践.

我不打算使用IoC的MEF来定位我的ViewModel.我想知道的是如何在Silverlight 4和WCF RIA中应用MVVM模式.

我不想使用像Prism或MVVM Light工具包这样的其他东西.我在互联网上发现了许多例子,展示了如何在视图上拖放数据源并完成工作(这让我想起了我的第一个VB6开发).

我试图用WCF RIA实现MVVM,它根本不是很明确的.如果我理解,MVVM应该包含所有逻辑,以便单独测试它,但是当它与WCF RIA结合时,它是另一个故事.我有以下问题.

  1. 我可以使用生成的元数据作为模型吗?如果我从头开始写所有内容会更容易使用它.

  2. 我看到了获取数据的唯一方法是通过DomainContext或通过视图中的直接绑定(本地资源).我不希望视图中的直接绑定,根本不可测试.另一方面,我不能使用DomainContext,它不暴露任何单个实体!我所拥有的只是可以绑定到datagrid的EntitySet.如何从ViewModel将单个实体绑定到DataForm?

  3. 如何将模型更新到数据库?

  4. 如何从一个实体导航到其项目的集合.例如,如果我有公司实体,我想显示一个DataForm来更新实体信息,并显示一个数据网格来显示公司的地址.保存表单时,我希望将信息保存到公司,并提供有关选择哪个地址为活动状态的信息.

请帮助我了解如何做得好.或者也许我应该放弃WCF RIA并从头开始使用WCF?

你怎么看 ?

silverlight mvvm silverlight-4.0 wcf-ria-services

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

Rails ActiveResource关联

我有一些ARes模型(见下文),我正在尝试使用关联(这似乎完全没有文档,也许不可能,但我想我会尝试一下)

所以在我的服务方面,我的ActiveRecord对象将呈现类似的东西

render :xml => @group.to_xml(:include => :customers)
Run Code Online (Sandbox Code Playgroud)

(参见下面生成的xml)

模型组和客户是HABTM

在我的ARes方面,我希望它可以看到<customers>xml属性并自动填充该.customersGroup对象的属性,但是不支持has_many等方法(至少据我所知)

所以我想知道ARes如何反映XML来设置对象的属性.例如,在AR中,我可以def customers=(customer_array)自己创建并设置它,但这似乎在ARes中不起作用.

我找到一个"关联"的建议就是有一个方法

def customers
  Customer.find(:all, :conditions => {:group_id => self.id})
end
Run Code Online (Sandbox Code Playgroud)

但这有一个缺点,就是它会进行第二次服务电话来查找这些客户......并不酷

我希望我的ActiveResource模型能够看到XML中的客户属性并自动填充我的模型.有人对此有经验吗??

# My Services
class Customer < ActiveRecord::Base
  has_and_belongs_to_many :groups
end

class Group < ActiveRecord::Base
  has_and_belongs_to_many :customer
end

# My ActiveResource accessors
class Customer < ActiveResource::Base; end
class Group < ActiveResource::Base; end

# XML from /groups/:id?customers=true

<group>
  <domain>some.domain.com</domain>
  <id type="integer">266</id>
  <name>Some Name</name>
  <customers type="array">
    <customer>
      <active type="boolean">true</active>
      <id type="integer">1</id>
      <name>Some …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails associations activeresource

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

如何在MATLAB中重命名结构数组中的字段?

给定结构数组,如何重命名字段?例如,给定以下内容,如何将"bar"更改为"baz".

clear
a(1).foo = 1;
a(1).bar = 'one';
a(2).foo = 2;
a(2).bar = 'two';
a(3).foo = 3;
a(3).bar = 'three';
disp(a)
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法,"最佳"是性能,清晰度和一般性的平衡?

matlab field rename matlab-struct

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

如何向联系人添加新字段?

我想将自定义字段添加到ContactsContract内容提供程序.我正在尝试构建一个Voip应用程序,并希望为其添加一个SIP地址(名称@域)字段.我需要与哪种MIME类型相关联?另外,我想添加一个组地址字段,其中包含一个组地址列表(名称@ domain,name @ domain,...).我必须将这种类型的字段与MIME类型相关联.

我还想将自定义字段添加到"呼叫历史记录"中,例如会话ID和SIP地址(名称@域)字段.如何自定义通话记录?

如果有人可以给我一个例子,那就太棒了.

android

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

如何在Wix Installer中检查系统是Windows 7还是Windows Server 2008 R2?

我正在开发一个Windows安装程序项目.现在我只希望软件只能安装在Windows 7或Windows Server 2008 R2系统上,我试着用这个:

<Condition Message='Windows Server 2008 R2 or Windows 7 is required'>(VersionNT = 600 AND ServicePackLevel = 1) OR VersionNT = 601 </Condition>
Run Code Online (Sandbox Code Playgroud)

但它仍然可以安装在Windows Vista上.请帮忙!

谢谢!

windows-installer wix system conditional-statements

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

wix:INSTALLDIR总是以斜线结尾吗?

我认为默认目录是一个尾随斜杠.

但是如果用户选择不同的目录呢?

有没有办法使INSTALLDIR没有尾随斜杠?

并不是我希望它没有拖尾斜线.我想知道我是否可以指望它,例如,

[INSTALLDIR]Filter.dll 
Run Code Online (Sandbox Code Playgroud)

...将始终解析为真实有效的文件系统路径.

目前我用

[INSTALLDIR]\Filter.dll
Run Code Online (Sandbox Code Playgroud)

我在那里得到了一个双斜线.它是有效的并且可以解决,但我想消除双斜杠.

谢谢.

windows-installer wix

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

Python蛋的缺点?

easy-install与"传统"包/模块/库相比,使用鸡蛋有什么缺点吗?

python comparison egg

7
推荐指数
2
解决办法
645
查看次数