小编Dav*_*mer的帖子

WPF:为ListView抑制ContextMenu

我有一个用XAML代码编写的WPF ListView控件ContextMenu.随着对每一个右键单击ListViewContextMenu显示,即使有在没有任何项目ListView.

这是我不想要的行为.在ContextMenu如果在该项目应只开放ListView.我没有问题计算项目,但我找不到正确的事件来抑制ContextMenu.

我怎样才能做到这一点?

wpf listview contextmenu

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

WPF Popup ZOrder

我正在使用WPF Popup,但它会弹出我桌面上的每个窗口,即使我的应用程序被最小化.我怎样才能让它只停留在它起源的窗口上?当我的窗口在其他窗口后面时,同样的事情发生了:弹出窗口显示在它们之上.

"必须有一些事情可以做!"

谢谢.

c# wpf xaml z-order

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

将Combobox SelectedValue绑定到文本框

我有一个TextBox和一个ComboBox.我想将ComboBox选定的值绑定到文本中TextBox.

请帮忙.

谢谢

data-binding wpf combobox textbox

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

WPF DataContext与ItemsSource性能

假设我们有一个ItemsControl,它与一个源有关.两者之间是否有任何性能差异

ItemsControl.DataContext = resultSet;
Run Code Online (Sandbox Code Playgroud)

ItemsControl.ItemsSource = resultSet;
Run Code Online (Sandbox Code Playgroud)

(在两种情况下都在XAML中正确绑定)

wpf datacontext performance itemssource

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

WPF ViewBox Zoom

有没有办法缩放视图框内容,一个控件的excpet?我有一个带网格的视箱,在这个网格中我有一些控件,我试图缩放视图框中的所有控件,除了一个,是否可能?

非常感谢,保罗

c# wpf zoom viewbox

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

WPF:将属性绑定到自定义UserControl

我在wpf中遇到以下问题:

我已经定义了一个包含文本框的用户控件(在命名空间测试中)(以及其他几个控件,只显示了xaml的相关部分):

<UserControl (...)
    DataContext="{Binding RelativeSource={RelativeSource Self}}"
    name="Spinbox">
    (...)
    <StackPanel Orientation="Horizontal">
    <TextBox x:Name="tbText" (...)>
        <TextBox.Text>
            <Binding Path="Value" UpdateSourceTrigger="PropertyChanged">
                <Binding.ValidationRules>
                    <local:ValidateValue MinVal="0" MaxVal="1" />
                </Binding.ValidationRules>
                <Binding.NotifyOnValidationError>true</Binding.NotifyOnValidationError>
            </Binding>
        </TextBox.Text>
    </TextBox>
    (...)
Run Code Online (Sandbox Code Playgroud)

在主窗口文件中,我正在使用此spinbox:

<Test:SpinBox x:Name="tbTestSpinbox" Value="{Binding Path=TheValue}" 
              MinValue="0" MaxValue="150">
    <Test:SpinBox.Behavior>
        <Controls:SpinBoxNormalBehavior />
    </Test:SpinBox.Behavior>
</Test:SpinBox>
Run Code Online (Sandbox Code Playgroud)

在后面的代码中,我定义了TheValue:

private double theValue;

public Window1()
{
  InitializeComponent();
  TheValue = 10;
}


public double TheValue
{
  get { return theValue; }
  set
  {
    theValue = value;
    NotifyPropertyChanged("TheValue");
  }
}

/// <summary>
/// Occurs when a property value changes
/// …
Run Code Online (Sandbox Code Playgroud)

validation wpf binding

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

如何创建自定义WPF设置向导

我已经建立了我的第一个wpf应用程序,没有什么花哨的,但我想通过添加设置让它看起来很酷,香港专业教育学院在互联网上研究了一些免费的实用工具,但是因为它是一个wpf应用程序,我看到设置去了沿着这些方向...任何想法我如何创建自定义Wpf设置向导?

wpf installation wizard

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

WPF ListView比包含Canvas的更大

我有一个ListView其使用GridView来显示DataTable,并且当新的行被添加到DataTable所述ListView成长,如预期的,但是当它到达底部Canvas它上生长进行.

我希望它在达到高度时停止Canvas,我该如何配置呢?

Canvas具有动态高度,由其控制DockPanel.

<Canvas>
    <ListView Name="listResults" ItemsSource="{Binding}">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Request Time" DisplayMemberBinding="{Binding RequestTime}" />
                <GridViewColumn Header="Request Duration(ms)" DisplayMemberBinding="{Binding Duration}" />
                <GridViewColumn Header="Request Duration(ms)" DisplayMemberBinding="{Binding Duration}" />
            </GridView>                            
        </ListView.View>
    </ListView>
</Canvas>
Run Code Online (Sandbox Code Playgroud)

size wpf datatable listview

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

如何为WPF命令绑定编写测试?

我有一个"命令"类:

public static class MyCommands
{
    private static ICommand exitCommand = new RoutedCommand();

    public static ICommand ExitCommand { get { return exitCommand; } }
}
Run Code Online (Sandbox Code Playgroud)

MainWindow.xaml.cs中的代码隐藏:

private void BindCommands()
{
    this.CommandBindings.Add(new CommandBinding(MyCommands.ExitCommand, this.Exit));
}

private void Exit(object sender, ExecutedRoutedEventArgs e)
{
    Application.Current.Shutdown();
}
Run Code Online (Sandbox Code Playgroud)

实现菜单栏的用户控件中的一些XAML:

<MenuItem Header="_Exit"
          Command="{x:Static local:MyCommands.ExitCommand}"
          />
Run Code Online (Sandbox Code Playgroud)

代码有效.我喜欢所涉及的一般模式,我想继续使用它.

但是,我也在努力追求其他目标,例如进行测试驱动开发,并通过我的单元和集成测试实现100%的覆盖率.我还希望100%符合StyleCop和FxCop警告.而且我被抓到了这里.

我的MainWindow.Exit()方法是私有的,正如FxCop(Microsoft.Security:CA2109)所推荐的那样,但这意味着我不能直接从测试中调用它.我想我可以把它公开并压制FxCop消息.或者我可以使用访问者.但是我反对直接针对私有方法编写测试,特别是在这种情况下,因为所有这些都是测试方法而不是命令绑定本身.

我觉得必须有其他方法从我的测试代码调用命令,以便我可以验证命令是否按预期工作(除了手动测试).有什么建议?

c# testing wpf commandbinding

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

WPF - 将列表框绑定到列表<string> - 我做错了什么?

我想在这里做一些非常基本的事情,我不希望给我这么多问题.我在我的主要类Window上有一个名为ItemList的公共属性List<string>.我在程序的整个生命周期中添加了这个列表,并希望我在表单上的ListBox控件在我向ItemList属性添加新项时自动更新.

到目前为止,我有以下XAML:

<Window x:Class="ElserBackupGUI.Main"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Backup Profile Editor [New Profile]" Height="480" Width="640">
    <DockPanel>
        <Menu DockPanel.Dock="Top">
            <MenuItem Header="File">
                <MenuItem Header="Open"/>
            </MenuItem>
        </Menu>
        <StackPanel Orientation="Vertical" DockPanel.Dock="Top" Margin="10 10 10 3">
            <TextBlock>Items to backup:</TextBlock>
        </StackPanel>
        <DockPanel DockPanel.Dock="Bottom" Margin="10 0 10 10">
            <StackPanel Orientation="Horizontal">
                <Button Name="AddDirectoryButton" Height="22.725" Width="120" Margin="0 0 6 0" Click="AddDirectoryButton_Click">Add Directory...</Button>
                <Button Name="AddFileButton" Height="22.725" Width="90" Margin="0 0 6 0" Click="AddFileButton_Click">Add File...</Button>
                <Button Name="RemoveDirectoriesButton" Height="22.725" Width="75.447" Margin="0 0 6 0">Remove</Button>
            </StackPanel>
        </DockPanel>
        <ListBox Name="SelectedItems" Margin="10 0 10 10" ItemsSource="{Binding …
Run Code Online (Sandbox Code Playgroud)

.net data-binding wpf listbox

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