小编Ter*_*lis的帖子

为参数指定多个接口

我有一个实现两个接口的对象...接口是:

public interface IObject
{
    string Name { get; }
    string Class { get; }
    IEnumerable<IObjectProperty> Properties { get; }
}
public interface ITreeNode<T>
{
    T Parent { get; }
    IEnumerable<T> Children { get; }
}
Run Code Online (Sandbox Code Playgroud)

这样的

public class ObjectNode : IObject, ITreeNode<IObject>
{
    public string Class { get; private set; }
    public string Name { get; private set; }
    public IEnumerable<IObjectProperty> Properties { get; set; }
    public IEnumerable<IObject> Children { get; private set; }
    public IObject Parent { get; …
Run Code Online (Sandbox Code Playgroud)

c# interface composition

21
推荐指数
2
解决办法
7920
查看次数

从上下文菜单项绑定到父控件

我有一个控件,在该控件上是一个名为SaveToClipboardCommand的命令.我想将一个上下文菜单项命令绑定到该命令,以便当我单击它时,执行copy to clipboard命令.

<Control x:Name="Control">
    <Control.ContextMenu>
        <ContextMenu>
            <MenuItem Command={"Bind to SaveToClipboardCommand here"} Header="Some Header" />
        </ContextMenu>
    </Control.ContextMenu/>
</Control>
Run Code Online (Sandbox Code Playgroud)

控件(为了论证)定义如下:

partial class Control
{
      private ICommand _saveToClipboard;
      public ICommand SaveToClipboardCommand
      {
          get
          {
              if (_saveToClipboard == null)
              {
                  _saveToClipboard = new RelayCommand(
                         x=> SaveToClipboard());
              }
              return _saveToClipboard;
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用基于RelativeSource和ElementName的绑定,但两者都失败了.我想做什么甚至可能?

谢谢!

wpf xaml binding

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

强制三态复选框不移动到不确定状态

嗨,我在WPF工作,我有一个有趣的要求.我需要我的复选框是ThreeState,所以如果只选择了一些子元素,它会显示为不确定.但是当用户点击它时,我希望它选择true或false.

这是一个代表我的要求的故事:

item - indeterminate  
    subItem - checked  
    subItem - unchecked  
    subItem - checked  
Run Code Online (Sandbox Code Playgroud)

当用户点击时item,复选框应在已选中和未选中之间切换.用户永远不能选择"不确定"作为状态.这可能吗?

wpf checkbox

10
推荐指数
2
解决办法
7540
查看次数

在WPF中进行可移动控制

我有一个面板,在该面板中有几个矩形控件(控件vaires的数量)我希望用户能够在面板内移动控件,以便他们可以以最适合他们的方式安排控件.有没有人有任何我可以阅读的资源或简单的提示,让我走向正确的道路?

谢谢

wpf xaml movable

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

源更改时,Combobox SelectedItem不会更新

我有一个实现的viewmodel INotifyPropertyChanged.在这个viewModel上是一个名为的属性SubGroupingView.此属性绑定到组合框的选定项.当我更改组合框时,源属性正在更新,但是当我更改源属性或初始化控件时,combobox.selectedItem它不反映属性中存在的内容.
以下是一些可以帮助您入门的代码:

<ComboBox Grid.Column="3" Grid.Row="1" 
          Margin="0,1,4,1" 
          SelectedItem="{Binding Path=SubGroupingView, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, diag:PresentationTraceSources.TraceLevel=High}" 
          ItemsSource="{Binding Columns}" 
          DisplayMemberPath="DisplayName">
Run Code Online (Sandbox Code Playgroud)

该属性引发PropertyChanged事件,TraceSource输出显示绑定检测到它并传输了值,只是组合框没有反映它.任何想法都会受到欢迎!

编辑:
跟踪源的输出是这样的:

System.Windows.Data Warning: 91 : BindingExpression (hash=23631369): Got PropertyChanged event from ReportViewModel (hash=52844413)  
System.Windows.Data Warning: 97 : BindingExpression (hash=23631369): GetValue at level 0 from ReportViewModel (hash=52844413) using RuntimePropertyInfo(SubGroupingView):         DataColumnViewModel (hash=58231222)  
System.Windows.Data Warning: 76 : BindingExpression (hash=23631369): TransferValue - got raw value DataColumnViewModel (hash=58231222)  
System.Windows.Data Warning: 80 : BindingExpression (hash=23631369): TransferValue - implicit converter produced DataColumnViewModel (hash=58231222) …
Run Code Online (Sandbox Code Playgroud)

wpf binding combobox selecteditem mvvm

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

定义实现+运算符的泛型

可能重复:
.NET泛型中重载运算符约束的解决方案

我有一个问题我正在努力,目前它正在为ints 工作,但我希望它适用于所有可以使用+运算符添加的类.有没有办法在通用中定义它?例如,

public List<T> Foo<T>() where T : ISummable
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

编辑:
传递代理进行求和而不是使用+ =类型的Int的性能最好慢540%.调查可能的其他解决方案

最终解决方案:
谢谢大家的建议.我最终找到了一个不太慢的解决方案,并在编译时强制执行检查.当一位同事帮我解决这个问题时,我无法完全信任.无论如何,这里是:

以函数的形式实现一个包含所有必需操作符的接口

public interface IFoo<InputType, OutputType>
{
    //Adds A to B and returns a value of type OutputType
    OutputType Add(InputType a, InputType b);
    //Subtracts A from B and returns a value of type OutputType
    OutputType Subtract(InputType a, InputType b);
}
Run Code Online (Sandbox Code Playgroud)

创建要定义的类,但不使用Where子句,而是使用IFoo接口的依赖注入实例.OutputType通常是双倍的,因为操作的性质是数学的.

public class Bar<T>
{
    private readonly IFoo<T,double> _operators;

    public Bar(IFoo<T, double> operators)
    {
        _operators = operators;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,当您使用此类时,您可以像这样定义操作规则: …

c# generics operators

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

创建半透明模糊背景 WPF

我有一个边框,我希望该边框的背景部分透明(不透明度 0.8),但我不希望其后面的图像被明确定义。我想要的效果类似于Windows Vista窗口边框效果,你可以看到后面有东西,但你看不出它是什么。

一些说明:
我正在使用 Windows XP,因此我无法使用 Vista Glass
我需要此解决方案能够跨任何 Windows 平台移植

任何帮助,将不胜感激 :)

wpf xaml blur

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

数据绑定WPF ComboBox与'新...'项目

大家好
我有一个组合框,它可以数据绑定到一个元素列表.但除了那个元素列表,我想要另一个项目.这个项目应该显示文本'New ...'
的想法是,如果他们选择一个普通元素,它会执行一些涉及该元素的动作.如果他们选择"新建"元素,则会将他们带到可以创建新项目的屏幕.
问题是,当你对某些东西进行数据绑定时你不能选择添加另一个项目,并且不存在将虚拟项目添加到元素列表中的问题......

这是一个基于具有'DefaultElement'属性的ComboBox创建新控件的机会吗?(包含所有相关的模板和命令绑定等)

c# data-binding wpf controls combobox

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

将类传递给WCF服务

我有一个问题但首先我想知道我是否正在研究最佳解决方案.

我正在制作一个应用程序,该应用程序将位于数百台客户端计算机上,并将数据发送到服务器的/ retreive数据.服务器将获取该数据并存储/处理它.

我希望客户端应用程序尽可能轻量级,所以我希望服务器以类的形式传递/接收数据.例如

客户端请求userID用户ID服务器使用具有用户名,ID和个人信息的类UserDetails进行响应.

另一个例子是

客户端请求项目服务器响应ProjectDetails类,该类具有项目ID,名称,描述,详细信息和活动列表(这是另一个类,因此应该实现为ActivitiesCollection)

我刚刚开始这个,并发现很多人说WCF服务是要走的路,但我以前从未写过.这是真的?如果是这样,我如何将复杂的类传递给WCF服务?

谢谢大家:)

〜戴夫

wcf

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

免费的VBscript混淆器

大家好
我有一个相当大(2k线)的vbScript文件,我需要混淆.它是一个定制的QTP函数库,因此必须随产品一起分发.是否有任何免费的VBscript混淆器在那里做得不错?
谢谢!

编辑:
加密不适合与QTP一起使用,因此Windows Scripting Encryption工具不起作用,QTP必须能够理解输出.我不是试图让输出黑客证明,只是让偶然的程序员不愿意付出努力来去除它的混淆

vbscript obfuscation

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