小编Hax*_*lit的帖子

添加和删​​除匿名事件处理程序

我想知道这是否真的有效?

private void RegisterKeyChanged(T item) 
{
    item.OnKeyChanged += (o, k) => ChangeItemKey((T)o, k);
}

private void UnRegisterKeyChanged(T item) 
{
    item.OnKeyChanged -= (o, k) => ChangeItemKey((T)o, k);
}
Run Code Online (Sandbox Code Playgroud)

编译器如何知道事件处理程序是否相同?这甚至是推荐的吗?

c# events anonymous-methods

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

WPF绑定FallbackValue设置为绑定

有没有办法让另一个绑定作为后备值?

我正在尝试做这样的事情:

<Label Content="{Binding SelectedItem.Name, ElementName=groupTreeView,
                         FallbackValue={Binding RootGroup.Name}}" />
Run Code Online (Sandbox Code Playgroud)

如果有人有另一种技巧可以实现这一目标,那就太棒了.

data-binding wpf fallback

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

WPF重置焦点按钮单击

我有一个TextBoxToolBar一个Button.如果我正在键入,TextBox我点击Button我想要TextBox丢失,Focus所以绑定得到更新.我不想加UpdateSourceTrigger=PropertyChanged我的TextBox.但是当我点击Button我重置Focus到主窗口时,我所做的就是丢失Focus并更新绑定.

我尝试OnClick使用以下内容添加到按钮,但它似乎不起作用:

    private void Button_Click(object sender, RoutedEventArgs e) {
        FocusManager.SetFocusedElement(this, null);
    }
Run Code Online (Sandbox Code Playgroud)

任何提示将不胜感激.

谢谢,劳尔

c# data-binding wpf focus button

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

git add - 使用difftool的补丁

是否可以配置Git使用我配置的difftool git add --patch

我想通过我自己的difftool选择要添加到索引的更改.

git

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

jQuery XmlHttpRequest忽略Cache-Control

我正在使用谷歌浏览器,我注意到每次执行XHR请求时,我都会在请求中添加以下标头:

Cache-Control: no-cache
Pragma: no-cache
Run Code Online (Sandbox Code Playgroud)

如果您阅读http://www.w3.org/TR/XMLHttpRequest/上的规范,则说明以下内容

如果用户代理实现HTTP缓存,则它应该尊重作者请求头中的Cache-Control头(例如,Cache-Control:no-cache绕过缓存).除非最终用户明确请求此类行为(例如,通过重新加载页面),否则它不能自动发送Cache-Control或Pragma请求标头.

好吧,我正在尝试以下方法:

$.ajax(myUrl, {
    type: 'get',
    dataType: 'json'
    cache: true,
    headers: {
      'Cache-Control': 'max-age=200' 
    }
  })
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我明确地设置了Cache-Control标头,希望获得我的资源的缓存副本.好吧Chrome似乎忽略了Cache-Control标头.

Cache-Control: no-cache在发出XHR请求时是否可以不发送标头?

javascript jquery google-chrome

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

Tomcat WAR - 配置Logback以在路径中使用应用程序名称

我在war文件lib文件夹中部署了logback,并且在classes文件夹中有以下logback.xml.

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
  <property name="destination" value="${catalina.base:-./temp}/logs/${appName:-myapp}" />

  <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${destination}.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- rollover daily -->
      <fileNamePattern>${destination}-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
      <!-- Keep logs for 7 days -->
      <maxHistory>7</maxHistory>

      <timeBasedFileNamingAndTriggeringPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
        <!-- or whenever the file size reaches 100MB -->
        <maxFileSize>100MB</maxFileSize>
      </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="error">
    <appender-ref ref="ROLLING" />
  </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

在第3行,我有一些变量替换,为我的日志文件创建路径.

  <property name="destination" value="${catalina.base:-./temp}/logs/${appName:-myapp}" />
Run Code Online (Sandbox Code Playgroud)

我想让它如此${appName}评估已部署的war文件的当前名称.

因此,如果我的网络应用文件夹看起来像这样

webapps
 - myapp.war
 - myapp-dev.war
Run Code Online (Sandbox Code Playgroud)

${destination}myapp.war 的属性将评估为.../logs/myapp,myapp-dev.war将评估为.../logs/myapp-dev.是否有JNDI属性或我可以访问appName的东西? …

java tomcat logback slf4j

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

使用New Handler附加Eventhandler与直接分配它

创建新事件处理程序与直接将其分配给事件的实际差异,优缺点是什么?

_gMonitor.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged);
Run Code Online (Sandbox Code Playgroud)

VS

_gMonitor.CollectionChanged += OnCollectionChanged;
Run Code Online (Sandbox Code Playgroud)

c# syntax events

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

可见性上的WPF停止故事板已更改

我有一个带有故事板的UserControl,我想在控件的可见性发生变化时停止动画.

我创建了一个触发器来暂停动画并根据状态启动它,但我不断收到ArgumentException.

这是XAML:

<UserControl.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard x:Name="ProgressAnimation_BeginStoryboard" Storyboard="{StaticResource ProgressAnimation}"/>
    </EventTrigger>
    <Trigger Property="Control.Visibility" Value="Collapsed">
        <PauseStoryboard BeginStoryboardName="ProgressAnimation_BeginStoryboard" />
    </Trigger>
    <Trigger Property="Control.Visibility" Value="Visible">
        <ResumeStoryboard BeginStoryboardName="ProgressAnimation_BeginStoryboard" />
    </Trigger>
</UserControl.Triggers>
Run Code Online (Sandbox Code Playgroud)

这是例外:

值"System.Windows.Media.Animation.PauseStoryboard"不是"System.Windows.SetterBase"类型,不能在此通用集合中使用.参数名称:value

我将如何在XAML中执行此操作?

谢谢,劳尔

wpf xaml triggers visibility storyboard

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

WPF Popup专注于数据网格

我正在创建一个自定义UserControl以在DataGrid编辑模板中使用.它看起来像这样:

<UserControl
   x:Class="HR.Controls.UserPicker"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:tk="http://schemas.microsoft.com/wpf/2008/toolkit"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Grid>
        <TextBlock x:Name="PART_TextBox" Text="Hello WOrld" />
        <Popup Width="234" Height="175" IsOpen="True" StaysOpen="True"

             Placement="Bottom"
             PlacementTarget="{Binding ElementName=PART_TextBox}"
         >
            <TextBox
                  x:Name="searchTextBox"
                  Text="&gt;Enter Name&lt;"/>
        </Popup>
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

编辑: 我稍微缩小了代码范围.看来,如果我将一个带有文本框的Popup直接放在CellEditingTemplate中,那么文本框得到的焦点就没问题了.当我将该代码移动到UserControl时,我在编辑单元格时无法再选择文本框.

UserControl是否以焦点做了一些有趣的事情?


问题是当我在datagrid中编辑单元格时,我得到了用户控件,但我无法单击TextBox searchTextBox.当我点击它时,弹出窗口关闭,单元格返回默认值.

我已经尝试复制并粘贴用户控件中的所有代码,并将其直接粘贴到CellEditingTemplate中,并以它应该的方式进行交互.

我只是想知道UserControl是否做了一些奇怪的事情,阻止弹出窗口获得焦点,因为它直接放在CellEditingTemplate中时按预期工作?

谢谢,劳尔

wpf datagrid focus popup

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

WPF DataGridComboBoxColumn

您好我正在使用WPF DataGrid,我正在尝试让ComboBox列工作.

<tk:DataGridComboBoxColumn Header="GroupLevel"
                           DisplayMemberPath="Type"
                           SelectedItemBinding="{Binding Path=GroupLevel}"
                           >
    <tk:DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding Path=GroupLevel.Group.GroupLevels}" />
        </Style>
    </tk:DataGridComboBoxColumn.EditingElementStyle>

</tk:DataGridComboBoxColumn>
Run Code Online (Sandbox Code Playgroud)

当我查看网格时,列是空白的,就像它没有使用显示成员路径一样.但是一旦我在列中单击,组合框就会显示并显示我的ItemsSource中的所有项目并选择正确的项目,因此我知道绑定都正常工作,甚至是DisplayMemberPath.就在我不编辑单元格时,它显示为空白.

我错过了一处房产吗?

谢谢,劳尔

data-binding wpf datagrid combobox

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