小编Shi*_*mmy的帖子

禁用WPF TreeView(或TreeViewItem)选择?

是否有一个很好的方法(除了重新整理TreeViewItem.Template)以禁用选择TreeView

我基本上寻找的ItemsControl风格TreeView(An ItemsControl是最好用'禁用'选择ListBox,阅读这篇文章)

wpf treeview xaml itemscontrol selection

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

在C#中替代VB.NET的类型转换函数(CBool​​)?

CBool在C#中有没有替代VB的关键字?

所有其他功能呢?

CBool将变成一个布尔任何有效的布尔:0,"False",null等.

.net vb.net type-conversion vb.net-to-c#

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

Visual Studio查找和替换正则表达式

我想用VB.NET替换C#属性,这意味着[Serializable]应该成为<Serializable>.

该模式(\[)(.+)(\])确实找到了结果,但我不知道如何用适当的括号替换第一组和最后一组.

我读了这个页面,但是我不明白如何使用大括号进行F&R,我试图用它包装组但是它不起作用.

regex replace visual-studio-2010 visual-studio

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

小组枚举成员?

我希望能够确定枚举值是否属于某个组.看到伪示例:

[Flags]
public enum Animals
{
  Dog = 1,
  Cat = 2,
  WildAnimal = Dog | Cat,
  Fly = 4,
  Bee = 8,
  Insect = Fly | Bee
}

public static bool IsInsect(Animals animals)
{
  return Animals.Insect.Qualifies(animals);
}

public static bool Qualifies(this Animals groupName, Animals value)
{
  //Is there a bitwise operation for it?
}
Run Code Online (Sandbox Code Playgroud)

c# enums bit-manipulation bitwise-operators

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

有没有办法将char作为const连接字符串?

如果我试试

const char NoChar = (char)8470; //?
const char TmChar = (char)8482; //™
const string IdDisplayName = "Clements" + TmChar + ' ' + NoChar;
Run Code Online (Sandbox Code Playgroud)

它会抛出一个编译错误:

分配给"{0}"的表达式必须是常量

据我所知,发生此错误是因为char是因为字符串连接operator(+)在内部调用ToString连接对象.

我的问题是,是否有办法(不受管理?舌) 去做吧.

我需要将该常量作为属性传递,它应该在客户端上生成.

该丑陋的解决方法(将看到什么是丑陋根据您的回答...)是继承该属性(其是密封的,将不得不作出一些反编译和复制粘贴的工作),并嵌入它作为一个非const将成为可能.

c# string const constants char

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

使用Linq to Entities执行字符串搜索

我想在Linq to Entities中启用此功能(因此过滤发生在SQL Server上)?

public static bool ContainsAny(this string source, StringComparison comparison,
                               IEnumerable<string> searchTerms)
{
  return searchTerms.Any(searchTerm => source.Contains(searchTerm, comparison));
}
Run Code Online (Sandbox Code Playgroud)

我的目标是搜索表并通过使用上述函数过滤某个列来限制结果,即GetContacts().Where(c => c.FullName.ContainAny(searchTerm)).

.net c# linq string linq-to-entities

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

如何在代码中绑定嵌套对象或master-detail-binding?

我有三个嵌套课程,Show,Season和Episode,其中一个节目有季节,季节有剧集.

我想绑定两个列表框,以便第一个列出季节,第二个列出该季节的剧集.

我怎样才能做到这一点?我更喜欢在代码中设置它,而不是xaml,但如果你知道如何使用xaml,它总比没有好.

简化的xaml:

<Window>
  <Label name="Showname" />
  <ListBox name="Seasons" />
  <ListBox name="Episodes" />
</Window>
Run Code Online (Sandbox Code Playgroud)

和一些相关的代码:

public partial class Window1 : Window
{
  public Data.Show show { get; set; }
  public Window1()
  {
    this.DataContex = show;

    //Bind shows name to label
    Binding bindName = new Binding("Name");
    ShowName.SetBinding(Label.ContentProperty, bindName);

    //Bind shows seasons to first listbox
    Binding bindSeasons = new Binding("Seasons");
    Seasons.SetBinding(ListBox.ItemsSourceProperty, bindSeasons);
    Seasons.DisplayMemberPath = "SeasonNumber";
    Seasons.IsSyncronizedWithCurrentItem = true;

    //Bind current seasons episodes to second listbox
    Binding bindEpisodes = new Binding("?????");
    Episodes.SetBinding(ListBox.ItemsSourceProperty, …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf binding master-detail

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

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

签名整数的Endian转换

我通过UDP接收大端数据并将其转换为小端.消息来源说整数是有符号的,但是当我交换有符号整数的字节(特别是16位)时,我会得到不切实际的值.当我把它们换成无符号的整数时,我得到了我的期望.我想源文档可能不正确,实际上是发送无符号的16位整数.但为什么会这么重要?这些值都应该是正数,并且在16位INT_MAX下,因此溢出不应该是一个问题.我唯一能想到的是(1)文档错误和(2)当我执行有符号的字节序交换时,我没有正确处理符号位.

我真的有两个问题:

1)当溢出不成问题时,我是否读入有符号或无符号的整数是否重要.

2)有符号值和无符号值之间的字节序交换是否不同(即符号位是否需要以不同方式处理)?

我认为对于有符号和无符号值,endian转换看起来都是相同的,例如对于16位value = value&0xff00 >> 8 | value&0x00ff << 8.

谢谢

endianness

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

避免重复的事件处理程序?

如何避免事件被处理两次(如果是相同的处理程序?)

Module Module1
  Sub Main()
    Dim item As New Item
    AddHandler item.TitleChanged, AddressOf Item_TitleChanged
    AddHandler item.TitleChanged, AddressOf Item_TitleChanged

    item.Title = "asdf"

    Stop
  End Sub
  Private Sub Item_TitleChanged(sender As Object, e As EventArgs)
    Console.WriteLine("Title changed!")
  End Sub
End Module

Public Class Item
  Private m_Title As String
  Public Property Title() As String
    Get
      Return m_Title
    End Get
    Set(ByVal value As String)
      m_Title = value
      RaiseEvent TitleChanged(Me, EventArgs.Empty)
    End Set
  End Property

  Public Event TitleChanged As EventHandler
End Class
Run Code Online (Sandbox Code Playgroud)

输出:

Title changed!
Title …
Run Code Online (Sandbox Code Playgroud)

vb.net events event-handling

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