小编akj*_*shi的帖子

DelegateCommand在哪个命名空间中?

我试图从"使用C#进行.NET域驱动设计"中找到一个示例,其中包含一个代码示例,您可以在其中看到声明了某些类型的属性DelegateCommand.

现在,我已经尝试了谷歌搜索,但我无法在MSDN上的任何地方找到它的参考(实际上,我发现了这篇文章,但不是DelegateCommand文章本身).

DelegateCommand部分内容是WPF或者它只是书中创造的内容吗?

如果它是WPF(或任何其他MS产品)的一部分,那么汇编/命名空间是什么?

.net c# vb.net wpf delegatecommand

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

关于WPF调试焦点问题的任何提示?

具体来说,我有一个打开非模态子窗口的按钮.主窗口中的某些东西会在打开时将焦点从子窗口中移开.

完全通用的方法是注释掉部分代码,直到问题消失.我正在寻找更快的方法.

.net debugging wpf focus

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

在WPF中,如何实现ICommandSource以使我的自定义控制能力能够使用来自xaml的命令?

您能否提供一个示例,了解如何实现ICommandSource界面.因为我希望我的UserControl,没有能力在xaml中指定命令,才能拥有此功能.并且能够在用户点击时处理该命令CustomControl.

.net c# wpf routed-commands

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

ControlTmplate与DataTrigger相比.DataTemplate与DataTemplateSelector

我有一个通用控件,它根据ViewModel中的type属性显示一个编辑器.目前它已经实现使用Control,ControlTemplate并且DataTrigger像这样 -

<Control
   x:Name="MainControl"
   Grid.Column="1"
   TargetUpdated="OnTargetUpdated">
        <Control.Style>
            <Style>
                <Style.Triggers>
                    <DataTrigger
                        Binding="{Binding Path=EditorType}"
                        Value="{x:Static view:EditorType.Bool}">
                        <Setter
                            Property="Control.Template"
                            Value="{StaticResource boolTemplate}" />
                    </DataTrigger>
                    <DataTrigger
                        Binding="{Binding Path=EditorType}"
                        Value="{x:Static view:EditorType.Text}">
                        <Setter
                            Property="Control.Template"
                            Value="{StaticResource textTemplate}" />
                    </DataTrigger>
                    <DataTrigger
                        Binding="{Binding Path=EditorType}"
                        Value="{x:Static view:EditorType.Integer}">
                        <Setter
                            Property="Control.Template"
                            Value="{StaticResource integerTemplate}" />
                    </DataTrigger>
                    ...
                    ....
                </Style.Triggers>
            </Style>
     </Control.Style>
</Control>
Run Code Online (Sandbox Code Playgroud)

现在,同样可以利用来实现ContentPresenter,DataTemplateDataTemplateSelector这样的-

<local:EditorTemplateSelector
    BoolEditorTemplate="{StaticResource boolTemplate}"
    TextEditorTemplate="{StaticResource textTemplate}"
    IntegerEditorTemplate="{StaticResource integerTemplate}"
    ...
    ....
    x:Key="EditorTemplateSelector">
</local:EditorTemplateSelector>

<ContentPresenter
    ContentTemplateSelector="{Binding Source={StaticResource EditorTemplateSelector}}"
    Content="{Binding}"
    TargetUpdated="OnTargetUpdated">
</ContentPresenter>

// …
Run Code Online (Sandbox Code Playgroud)

wpf datatrigger datatemplate controltemplate datatemplateselector

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

WPF堆栈面板集中对齐

我希望能够集中对齐堆栈面板中的按钮.按钮数是动态的,并在加载控件时生成.例如,如果生成1个按钮,则此按钮应放在控件的中心.如果显示5个按钮,那么所有5个按钮应相互水平对齐,但是控件的中心位置.

另一种方法是让控件根据其内容动态调整大小,以便使用更多按钮更宽,然后在页面上水平对齐用户控件,但我不确定如何处理任何一种解决方案?

有人有什么想法吗?

.net silverlight wpf

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

WPF ControlTemplates必须有TargetType吗?

WPF中的ControlTemplates是否需要TargetType?我正在重新设置一些控件,并注意到comboboxitem,listiviewitem和listboxitem都具有相同的模板:

    <ControlTemplate x:Key="ListBoxItemCT" TargetType="{x:Type ListBoxItem}">

    <Border x:Name="Bd" 
        SnapsToDevicePixels="true" 
        Background="{TemplateBinding Background}" 
        BorderBrush="{TemplateBinding BorderBrush}" 
        BorderThickness="{TemplateBinding BorderThickness}" 
        Padding="{TemplateBinding Padding}"
        CornerRadius="1">
        <ContentPresenter x:Name="cpItemContent"
            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
            VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
            SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
            />
    </Border>

</ControlTemplate>
Run Code Online (Sandbox Code Playgroud)

是否可以删除TargetType并为所有三个模板设置一个模板?我试图这样做,但得到奇怪的错误和问题.我找不到ControlTemplates必须具有类型的任何特定参考.

.net wpf templates controltemplate targettype

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

如何使我的通用比较器(IComparer)处理空值?

我正在尝试编写用于排序的通用对象比较器,但我注意到它不处理其中一个值比较的实例为null的实例.当一个对象为null时,我希望它对待它与空字符串相同.我已经尝试将null值设置为String.Empty,但是当我调用CompareTo()时,我得到"Object必须是String类型"的错误.

public int Compare(T x, T y)
{
    PropertyInfo propertyInfo = typeof(T).GetProperty(sortExpression);
    IComparable obj1 = (IComparable)propertyInfo.GetValue(x, null);
    IComparable obj2 = (IComparable)propertyInfo.GetValue(y, null);

    if (obj1 == null) obj1 = String.Empty; // This doesn't work!
    if (obj2 == null) obj2 = String.Empty; // This doesn't work!

    if (SortDirection == SortDirection.Ascending)
        return obj1.CompareTo(obj2);
    else
        return obj2.CompareTo(obj1);
}
Run Code Online (Sandbox Code Playgroud)

我现在非常坚持这个!任何帮助,将不胜感激.

.net c# sorting icomparer

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

在WindowsFormsHost之上渲染WPF控件

我知道默认的WPF行为是渲染WPF控件然后在顶部呈现WinForms,但有没有办法在其上呈现WPF WindowsFormsHost

编辑:我也发现了一个临时黑客.当wpf控件重叠时WindowsFormsHost,我改变了它的大小WindowsFormsHost(这只适用于有重叠的矩形对象,不适用于其他形状.)

wpf windowsformshost

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

为什么WPF绑定以两种不同的方式处理INotifyPropertyChanged?

我最近发现wpf以两种不同的方式处理INotifyPropertyChanged.我只是想知道是什么原因.

让我们采用正常的双向绑定验证为真.

如果你将一个属性从ui设置为viewmodel就像这样.

  • 塞特电话开始了
  • 价值集
  • INotifyPropertyChanged开始了
  • INotifyPropertyChanged完成了
  • 二传完成
  • 得到了呼唤和完成
  • IDataErrorInfo调用并完成

但如果你在viewmodel中设置了属性,它会像这样

  • 塞特电话开始了
  • 价值集
  • INotifyPropertyChanged开始了
  • 得到了呼唤和完成
  • IDataErrorInfo调用并完成
  • INotifyPropertyChanged完成了
  • 二传完成

wpf binding inotifypropertychanged

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

多语种wpf应用程序

我有一个WPF应用程序(英文),我想让用户选择不同的语言.我已经阅读了一些在运行时应用程序中更改语言的可能性,但我只想在安装时选择一种语言,而不是更改它.

您认为最快最容易的方法是开发不同版本的程序(仅更改文本语言)并让用户在安装过程中选择其中一个版本吗?可能重复代码只更改文本框或标签不是很优雅,但请注意我的应用程序用英语完成,我不需要在运行时更改语言.

.net c# wpf multilingual

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