小编Chr*_*ini的帖子

如何绑定DataGridColumn.Visibility?

我有类似以下帖子的问题:

Silverlight DataGridTextColumn绑定可见性

我需要根据ViewModel中的值对Silverlight DataGrid中的列进行可见/折叠.为此,我尝试将Visibility属性绑定到ViewModel.但是我很快发现Visibility属性不是DependencyProperty,因此无法绑定.

为了解决这个问题,我尝试将自己的DataGridTextColumn子类化.有了这个新的类,我创建了一个DependencyProperty,最终推动更改DataGridTextColumn.Visibility财产.如果我没有数据绑定,这很有效.在我数据绑定到新属性的那一刻,它失败了,带有AG_E_PARSER_BAD_PROPERTY_VALUE异常.

public class MyDataGridTextColumn : DataGridTextColumn
{
    #region public Visibility MyVisibility

    public static readonly DependencyProperty MyVisibilityProperty =
        DependencyProperty.Register("MyVisibility", typeof(Visibility), typeof(MyDataGridTextColumn), new PropertyMetadata(Visibility.Visible, OnMyVisibilityPropertyChanged));

    private static void OnMyVisibilityPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var @this = d as MyDataGridTextColumn;

        if (@this != null)
        {
            @this.OnMyVisibilityChanged((Visibility)e.OldValue, (Visibility)e.NewValue);
        }
    }

    private void OnMyVisibilityChanged(Visibility oldValue, Visibility newValue)
    {
        Visibility = newValue;
    }

    public Visibility MyVisibility
    {
        get { return (Visibility)GetValue(MyVisibilityProperty); }
        set { SetValue(MyVisibilityProperty, value); }
    }

    #endregion public Visibility …
Run Code Online (Sandbox Code Playgroud)

silverlight binding datagrid visibility

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

无法在捆绑的aurelia应用程序的单元测试中使用帮助程序类.RequireJS配置?

摘要

使用aurelia cli和包含的默认任务,我无法利用单元测试中位于test文件夹中的辅助类.

细节

从使用au new创建的示例应用程序开始,我在'test/util/helper.ts'中有一个设计的帮助器类:

export class Helper {
    Property : string;
}
Run Code Online (Sandbox Code Playgroud)

此类由test/unit/app.spec.ts文件导入:

import {App} from '../../src/app';
import {Helper} from "../util/helper";

describe('the app', () => {
  it('says hello', () => {
    let h = new Helper();
    h.Property = "Testing";
    expect(h.Property).toBe("Testing");
    expect(new App().message).toBe('Hello World!');
  });
});
Run Code Online (Sandbox Code Playgroud)

方法#1 - 捆绑 我在几个地方修改了aurelia.json文件:

  • 将typescript编译器的源更改为包含测试文件夹下的文件

    "transpiler": {
       "id": "typescript",
       "displayName": "TypeScript",
       "fileExtension": ".ts",
       "dtsSource": [
         "./typings/**/*.d.ts",
         "./custom_typings/**/*.d.ts"
       ],
       "source": ["src\\**\\*.ts","test\\**\\*.ts"]
    },
    
    Run Code Online (Sandbox Code Playgroud)
  • 修改app-bundle以从测试文件夹中排除任何文件

      {
        "name": "app-bundle.js",
        "source": {
          "include": [
            "[**/*.js]",
            "**/*.{css,html}"
          ],
          "exclude": …
    Run Code Online (Sandbox Code Playgroud)

requirejs aurelia aurelia-cli

6
推荐指数
1
解决办法
325
查看次数