小编bar*_*ron的帖子

列表框,同步滚动

我有两个相同大小的列表框,彼此相邻.基本上我使用它们来表示链接的项目...类似于在excel中有2列和多行,比如说,名字在一个名字和另一个名字.

我想知道我是否可以这样做,以便当滚动一个列表框时,另一个列表框与它同步滚动?

希望这是有道理的.谢谢你.

c# wpf listbox visual-studio-2008

5
推荐指数
0
解决办法
3151
查看次数

WPF Datagrid绑定列出问题

我有一个自定义对象列表:说水果有两个字符串属性名称和颜色.这些都在列表中.

private readonly List<Fruit> fruitList = new List<Fruit>();
Run Code Online (Sandbox Code Playgroud)

然后我将水果对象加载到列表中.

我试图将此列表绑定到WPF Datagrid:

C#:

dgFruit.ItemsSource = "{Binding}";
Run Code Online (Sandbox Code Playgroud)

XAML:

<toolkit:DataGrid Name="dgFruit" 
            ItemsSource="{Binding Path=fruitList}" >
                <toolkit:DataGrid.Columns>

                    <toolkit:DataGridComboBoxColumn 
            Header="Name" 
            SelectedValueBinding="{Binding Path=Name}" 
            TextBinding="{Binding Path=Name}" Width="5*" />   

                    <toolkit:DataGridComboBoxColumn 
            Header="Color"
            SelectedValueBinding="{Binding Path=Color}"
            TextBinding="{Binding Path=Color}" Width="5*" />

                </toolkit:DataGrid.Columns>
            </toolkit:DataGrid>
Run Code Online (Sandbox Code Playgroud)

他们在组合框中的原因是因为我希望用户能够改变关系.这不是真实的例子,但你明白了.为了这个例子说水果不成熟,所以他们把香蕉的颜色改成绿色:)

我没有运气在数据网格中获取这些项目...并且在轨道上,我想要点击datagridcell中的项目以更改为组合框并显示所有可能类型的水果名称和颜色(因此它们可以更改关系)

这是我得到的错误:

System.Windows.Data Error: 39 : BindingExpression path error: 'Color' property not found on 'object' ''Char' (HashCode=6750311)'. BindingExpression:Path=Color; DataItem='Char' (HashCode=6750311); target element is 'TextBlockComboBox' (Name=''); target property is 'Text' (type 'String')
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?我在xaml中设置colums的原因是我可以将宽度设置为星号并使列宽度相等.

我看到大多数示例使用ObservableCollection,但如果我可以绑定到列表,为什么我必须使用它?

如果我的例子需要进一步澄清,请告诉我

编辑:我现在拥有的:

XAML:

            <toolkit:DataGrid Name="dgFruit" 
            ItemsSource="{Binding}" …
Run Code Online (Sandbox Code Playgroud)

c# wpf datagrid list visual-studio-2008

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

排序列表与ObservableCollection

我发现我"正在做WPF错误"并且令人沮丧地必须彻底检查我的代码.

我怎么能转换以下内容:

public static class SortName 
    {
       public static  int Compare(Person a, Person b)
        {
            return a.Name.CompareTo(b.Name);
        }

    }
Run Code Online (Sandbox Code Playgroud)

我称之为:

list.Sort(SortName.Compare);
Run Code Online (Sandbox Code Playgroud)

到ObservableCollection所需的格式.我怎么称呼它.到目前为止,我已经根据我在这里阅读的内容尝试了以下内容

class ObservableCollectionSortName<T> : ObservableCollection<T> 
{
    public int Compare (Person a, Person b)
    {
        return a.Name.CompareTo(b.Name);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf visual-studio-2008

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

使用单独的类,全局/静态类?

说我有两个单独的类,A和B.

我还有Repository类C,它从文本文件中加载一些信息.例如,它有一些方法loadLines(),addLine(),deleteLine().

忽略数据绑定,如何使A和B都在同一个C类上工作.是否可能?

例如,目前,在A类和B类表格中,我有:

var classC = new C();
Run Code Online (Sandbox Code Playgroud)

这导致重复执行.如果我可以从A或B中使用一个c类副本,那会好得多.

编辑:所以使用单例,C类的构造函数何时执行? - 无论哪个班级首先创造它?它只发生在我接受它的时候?

edit1:使用单例模式意味着你应该只在项目解决方案中有一个吗?我可以有多个吗?

c# class-design class visual-studio-2008

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

为列表编写删除名称循环

我想尝试制作一个有效的删除方法来处理列表.这种情况如下:

比如说,我有一个(可能)庞大的名单:

Alex Smith
Anna Hobb
Bertie Blackman
Bill Clinton
David Smith
David Warner
George Jung
George Washington
William Wobbits
Run Code Online (Sandbox Code Playgroud)

让我们说这是一个List<Person>人有属性FirstName和LastName.如示例中所示,两个人可能共享相同的FirstName.我需要做的是查看列表并删除所有Davids,例如.

我正在循环查找所有大卫,添加到列表DeletePerson,然后再次循环每个DeletePerson并删除.我相信会有更有效的方法吗?效率在这个应用程序中并不重要,但它似乎是一个漫长的方式来做到这一点,我想,因为在第一个名字的字母D之后我们知道我们不会再添加到DeletePerson列表中(假设列表是按字母顺序排序)

谢谢!

c# algorithm list

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

基本类命名和可见性问题

我总是看到人们给我代码(我的意思是关于SO之类的问题的代码示例),如:

    class MyData{
       ObservableCollection<Color> Colors;
       ObservableCollection<Fruit> Fruits;
       ObservableCollection<Pairs> Pairs;

       public void MatchCurrentSelection(){
            .....
etc
            }
       }
    } 
Run Code Online (Sandbox Code Playgroud)

每次我开始在visual studio中编写代码时,它都会强制我声明可见性,并且总是包含在命名空间中.人们jsut是否将命名空间与其无关?为什么我总是被迫设置可见性?(它默认会自动附加私有)

    namespace TheProject
    {
        public class MyData
        {
            private ObservableCollection<Colors> Colors;
            private ObservableCollection<Fruits> Fruits;
...

    etc
Run Code Online (Sandbox Code Playgroud)

我必须在这里遗漏一些东西......故事是什么?

谢谢

c# wpf visibility class visual-studio-2008

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

使用gmail smtp通过代理发送电子邮件

试图在我的C#应用​​程序中发送一些电子邮件.我支持代理 - 这无疑是代码无效的原因.这是我到目前为止:

App.Config:

<system.net>
    <defaultProxy enabled="false">
      <proxy proxyaddress="xxx.xxx.xxx.xxx"/>
    </defaultProxy>
    <mailSettings>
      <smtp deliveryMethod="Network">
        <network host="smtp.gmail.com" port="587"/>
      </smtp>
    </mailSettings>
  </system.net>
Run Code Online (Sandbox Code Playgroud)

代码:

        var username = "...";
        var password = "...";

        var fromEmail = "...";
        var toEmail = "...";
        var body = "Test email body";
        var subject = "Test Subject Email";

        var client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential(username, password),
            EnableSsl = true
        };

        try
        {
            client.Send(fromEmail, toEmail, subject, body);
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }  
Run Code Online (Sandbox Code Playgroud)

每次我得到System.Net.WebException:无法解析远程名称:'smtp.gmail.com' …

c# proxy gmail send smtpclient

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

为什么我不能更新这个表?

我在SQL Server 2008 R2中有三个表:Country Address和Country_Address


Country 有列:

CountryID Country

1,阿富汗

2,澳大利亚


Address 有列:

AddressID Address

1,5 Smith Smith


Country_Address 有列:

CountryID AddressID

1,1

编辑:所以在这个例子中,5史密斯方式是阿富汗的地址.

我已经清空了表,然后添加了两个国家和一个地址,然后Country_Address在1和1之间的链接.当我尝试将CountryID1从1 更新为时,我不能因为FK约束.我不明白为什么会这样,因为CountryID我试图分配确实存在.那我该如何设法更新呢?


edit1:这是我在SQL Management Studio中尝试进​​行更新时遇到的错误,我得到InvalidOperationException- "类型'......的模型无法更新." 在Visual Studio中.

没有更新行.

第1行中的数据未提交.错误来源:.Net SqlClient数据提供程序.错误消息:UPDATE语句与FOREIGN KEY约束"FK_Country_Address_Address"冲突.冲突发生在数据库"...",表"dbo.Address",列'AddressID'中.

该语句已终止.

sql foreign-keys sql-server-2008

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

DOM没有满载?

当准备使用jQuery文件时,即$(document).ready(function() { }DOM是否有可能尚未完全加载?

我使用了一些3 次第三方工具(Telerik的网格),并建立一个客户端模板来显示一个复选框来代替,就像这样.码:

.ClientTemplate("<input type='checkbox' name='checkedRecords' value='<#= OrderID #>' />")
Run Code Online (Sandbox Code Playgroud)

我问的原因是我试图将事件连接到所有要监视的复选框change:

$(':input').change(
    function () {
       alert('you fired!');
});
Run Code Online (Sandbox Code Playgroud)

我在Telerik网格代码之外手动设置了一个复选框,它连接到复选框更改,但telerik网格内的复选框都没有...

在那种情况下 - 是否有解决方法?

javascript jquery dom

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

理解DirectoryInfo.Exists上的布尔值

var fileOpen = new OpenFileDialog(); var clickedOk = fileOpen.ShowDialog(); if(!((bool)clickedOk))return;

var path = fileOpen.FileName;
var diPath = new DirectoryInfo(path);
var fiPath = new FileInfo(path);

Debug.WriteLine(diPath.Exists);
Run Code Online (Sandbox Code Playgroud)

我只是想知道为什么diPath.Exists在这种情况下是假的?由于用户选择了一个文件,该目录必须存在!?它确实......

我已经使用了一个使用的工作,Directory.Exists(fiPath.DirectoryName)但似乎很奇怪,上面的工作不起作用,并且需要其他var来检查我知道存在的东西,并且应该只能使用diPath,这有点令人恼火.这是怎么回事?

还有一个相关的问题,说我有一个目录C:\ random\spot \这里的directoryinfo为什么没有方法获取该字符串"C:\ random\spot\here"它似乎我只能得到父"点"或姓名"在这里".也许我错过了什么.

谢谢,

c# boolean directoryinfo fileinfo

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

为什么在地球上显示" - "作为问号?

  • 我的WPF应用程序正在读取文本文件并填充列表框.

  • 每当我的文本被短划线符号(" - ")包围时,记事本中的行将如下所示,例如"SAMPLE - TEXT"

  • 当它在应用程序中显示时,短划线变成一个问号!?!?!?

  • 然后我有一个Export按钮,它将这些按钮写回文本文件.当这个符号被写回来时,在记事本中它会变成一个正方形!?!?!?

  • 为什么发生这种情况?请看截图

    http://img33.imageshack.us/img33/9893/whatthey.png

c# wpf encoding text visual-studio

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

C# - 查找适用的前缀

只是寻找一些帮助,以解决以下问题的最佳方法:

我有一堆拨打的号码,不要以为你需要我给你看,但是例如

006789 1234
006656 1234
006676 1234
006999 1234
007000 1234
006999 6789
Run Code Online (Sandbox Code Playgroud)

现在:我还有一个前缀列表(前缀是首先拨打的位,也告诉你呼叫的去向(重要位)).重要的是 - 它们具有领先的0,并且它们具有不同的长度.

比如说

006789 = australia
006789 = russia
006656 = france
006676 = austria
0069 = brazil
00700 = china
Run Code Online (Sandbox Code Playgroud)

所以我要做的是编写C#算法来查找要应用的前缀.

逻辑的工作原理如下,比如我们有一个拨打的号码和这些前缀

dialled number:0099876 5555 6565,
prefix1: 0099876 = Lyon (France)
prefix2: 0099 = France
Run Code Online (Sandbox Code Playgroud)

现在两个前缀都适用,除了"更详细的一个"总是获胜.即这个电话是里昂(法国),0099876应该是结果,即使0099也适用.

让我开始使用这个算法的任何帮助都会很棒,因为看着它,我不确定我是否应该比较字符串或整数!我有.Contains字符串,但正如我的例子中所描述的那样,如果前缀在数字的后面,则不能正常工作

即

6999 6978
6978 1234
Run Code Online (Sandbox Code Playgroud)

干杯!!!

c# algorithm

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

jQuery/javascript基本逻辑问题

我正在使用jQuery方法$.getJSON更新某些级联下拉列表中的数据,特别是如果没有为下拉列表返回任何内容的默认值,例如"NONE".

我只想澄清我的逻辑应该如何进行.

var hasItems = false; 
$.getJSON('ajax/test.json', function(data) {
hasItems = true;

    //Remove all items
    //Fill drop down with data from JSON


});

if (!hasItems)
{
    //Remove all items
    //Fill drop down with default value
}
Run Code Online (Sandbox Code Playgroud)

但我不认为这是对的.无论我是否收到数据,我都会进入该功能吗?我想我真的想检查数据对象包含的东西 - 设置我的布尔值hasItems.

javascript jquery json getjson

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