小编Omr*_*ian的帖子

在多个线程中使用Random共享相同的方法

我正在使用跟随xaml创建一个简单的赛车应用程序

<StackPanel>
    <Slider x:Name="racerOne" Maximum="1000"/>
    <Slider x:Name="racerTwo" Maximum="1000"/>
    <Button Content="Start Race" Click="myButton_Click"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

我使用以下代码

    private void myButton_Click(object sender, RoutedEventArgs e)
    {
        Task firstRacer = Task.Run(() => Race(racerOne));
        Task secondRacer = Task.Run(() => Race(racerTwo));
    }

    private void Race(Slider racer)
    { 
        int step = 0;

        while (step < 1000)
        {
            step += new Random().Next(0, 10);
            Dispatcher.BeginInvoke(new ThreadStart(() => racer.Value = step));
            Thread.Sleep(new Random().Next(0, 300));
        }
    }
Run Code Online (Sandbox Code Playgroud)

大多数时候(假设90%是precent)两个滑块似乎一起移动,而在调试中我可以看到每个线程生成不同的值step.怎么会?

c# wpf multithreading dispatcher

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

NHibernate抛出'无法解析属性'异常

我有以下属性以下公司(不包括Id):

    public virtual Category Category { get; set; }
Run Code Online (Sandbox Code Playgroud)

它映射到CompanyMap中,如下所示:

    HasOne(x => x.Category)
            .Cascade.All();
Run Code Online (Sandbox Code Playgroud)

类别只有以下属性:

    public virtual string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

CategoryMap:

    Map(x => x.Name)
            .Column("Name")
            .Length(40)
            .Unique();
Run Code Online (Sandbox Code Playgroud)

该表已在DB中成功创建.

我有一个包含以下查询的存储库:

            var test = Session.QueryOver<Company>()
                              .WhereRestrictionOn(dbCompany => dbCompany.Category.Name)
                              .IsLike(category.Name);
Run Code Online (Sandbox Code Playgroud)

category.name只是任何字符串.

然后我想访问数据库并获得结果:

    var result = test.List();
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

    could not resolve property: Category.Name of: My.Name.Space.Company
Run Code Online (Sandbox Code Playgroud)

查询有什么问题?

c# nhibernate fluent-nhibernate

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

重写TextBox height属性的默认值

我正在创建一个源自的自定义控件TextBox。我试图覆盖它的Height属性的默认值,但是我不断收到类型不匹配的错误。

元数据覆盖和基本元数据必须是相同类型或派生类型。

MSDN上,它声明Height属性为类型System.Double

我尝试了以下方法:

1)转换为两倍

HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new UIPropertyMetadata(Convert.ToDouble(200)));
Run Code Online (Sandbox Code Playgroud)

HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new UIPropertyMetadata((double)200));
Run Code Online (Sandbox Code Playgroud)

2)试图找出默认值

HeightProperty.DefaultMetadata.DefaultValue
Run Code Online (Sandbox Code Playgroud)

返回Double.NaN

编辑:我在控件的静态构造函数中执行此操作,如MSDN上的示例所示

知道我如何可以覆盖它的默认值吗?

c# wpf textbox custom-controls

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

WPF:ControlTemplate的IsPressed触发器无法正常工作

我使用一个名为的自定义控件ImageButton来显示具有不同图像的按钮.ImageButton包含依赖属性:

public ImageSource DisabledImageSource
    {
        get { return (ImageSource)GetValue(DisabledImageSourceProperty); }
        set { SetValue(DisabledImageSourceProperty, value); }
    }


    public ImageSource NormalImageSource
    {
        get { return (ImageSource)GetValue(NormalImageSourceProperty); }
        set { SetValue(NormalImageSourceProperty, value); }
    }

    public ImageSource HoverImageSource
    {
        get { return (ImageSource)GetValue(HoverImageSourceProperty); }
        set { SetValue(HoverImageSourceProperty, value); }
    }

    public ImageSource PushedImageSource
    {
        get { return (ImageSource)GetValue(PushedImageSourceProperty); }
        set { SetValue(PushedImageSourceProperty, value); }
    }


    public static readonly DependencyProperty DisabledImageSourceProperty =
        DependencyProperty.Register("DisabledImageSource", typeof(ImageSource), typeof(ImageButton), new UIPropertyMetadata());


    public static readonly DependencyProperty …
Run Code Online (Sandbox Code Playgroud)

c# wpf custom-controls controltemplate

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

将文本列排序为数字列 WPF MVVM

我有一个DataGrid绑定到模型集合的对象。我的模型有一个名为 stringPosition类型的 string 属性,但包含一个整数值。

我的问题是,在对此列进行排序时,值被排序为1, 10, 2而不是1, 2, 10.

有没有处理这种 MVVM 风格而不处理代码隐藏Sorting事件DataGrid?请记住,我无法更改属性的类型。

c# sorting wpf datagrid mvvm

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

使用tagLib sharp library添加自定义标记

是否可以使用TagLib# libary 将自定义标签(例如"SongKey:Em")添加到mp3文件中?

c# mp3 taglib-sharp

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

从选定项目中获取价值的麻烦

我想SelectedItems在ListView中获取值但它不起作用!

选择一个项目时我没有问题,但我想在扩展模式下工作,因此它显示任何选定的项目.

我的代码是:

    List<Fnamelist> familylist = new List<Fnamelist>();
    public class Fnamelist
    {

        public Fnamelist(string fname)
        {
            this.Fname = fname;

        }
        private string fname = string.Empty;
        public string Fname
        {
            get { return fname; }
            set { fname = value; }
        }

    }


    private void button1_Click(object sender, RoutedEventArgs e)
    {

       MessageBox.Show(((Fnamelist)listView1.SelectedItems).Fname.ToString()); 
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        familylist.Add(new Fnamelist("mike"));
        familylist.Add(new Fnamelist("john"));
        familylist.Add(new Fnamelist("melon"));
        familylist.Add(new Fnamelist("bab"));
        listView1.ItemsSource = familylist;
        listView1.Items.Refresh();
    }  
Run Code Online (Sandbox Code Playgroud)

xaml:

    <Button Content="show" Height="23" HorizontalAlignment="Left" Margin="331,79,0,0" Name="button1" …
Run Code Online (Sandbox Code Playgroud)

c# wpf listview

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

将WPF组合框ItemsSource绑定到字符串数组时出错

我无法将组合框的ItemsSource设置为数组.我已经尝试将DataContext设置为找到Array的类,然后在XAML中设置绑定

 class Car
{
    public string[] makes;
}
Run Code Online (Sandbox Code Playgroud)

...

public MainWindow()
{
    Car _Car = new Car();
    _Car.makes = new string[]
        {
            "Toyota",
            "Mitsubishi",
            "Audi",
            "BMW"           
        };

    this.DataContext = _Car;
}
Run Code Online (Sandbox Code Playgroud)

然后在XAML中

<ComboBox Name="cars" Grid.Column="0" 
              Grid.Row="0" Margin="5" 
              ItemsSource="{Binding Path=makes}"/>
Run Code Online (Sandbox Code Playgroud)

它似乎没有做任何事情.我的汽车组合框不会有任何物品.

我也试过明确分配

cars.ItemsSource= new string[]{
                "Toyota",
                "Mitsubishi",
                "Audi",
                "BMW"           
            };
Run Code Online (Sandbox Code Playgroud)

但后来我收到此错误消息:

调用的目标抛出了异常.

我错过了什么吗?

c# wpf binding combobox itemssource

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

WPF 2列布局容器

如何创建布局容器,我可以作为使用ItemsPanelItemsControl 是堆叠在两列的项目,并使用正确的列未在左边的列(足够的空间像一个统一的网格包裹混合剩余项目面板)。

例如:

高度几乎相同的四个项目将显示如下:

其中两个宽度明显较小的四个项目将显示如下:

c# wpf wrappanel uniformgrid

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

离子2:显示3x3表中的项目数组

我想要在3x3表格中显示一系列项目,如下所示:

在此输入图像描述

为了实现这一点,我将我的数组切成3个3的数组并显示如下:

<ion-grid no-padding class="home-gallery">
    <ion-row *ngFor="let row of items | async">
        <ion-col *ngFor="let item of row">
            <div class="products_list">
                <div class="products_list_img">
                    <img [src]="item.previewImage" (click)="showItem($event, item)"/>
                </div>    
            </div>
        </ion-col>
    </ion-row>
</ion-grid>
Run Code Online (Sandbox Code Playgroud)

有没有办法在保持阵列扁平化的同时实现这种显示?

css ionic-framework ionic2 angular

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

强制用户态程序在非分页内存下运行

我需要编写一个程序(最好使用高级语言,如 C# 或 Java,但可以是 C/C++),在任何情况下都不能将其数据写入磁盘。

即使不执行任何 I/O 操作,数据也可以通过 OS 页面错误写入磁盘。

有没有办法避免它?

c++ winapi operating-system memory-management process

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