小编mm8*_*mm8的帖子

C# 在新线程或任务中打开表单?

如何使用线程或任务在 C# 中打开新表单。

例子:

public void openform()
{
    Form _form = new Form();
    _form.show()
}

Thread _thread = new Thread(openform);
_thread.start();
Run Code Online (Sandbox Code Playgroud)

如果我使用线程,它会打开表单并再次关闭它。

c# multithreading visual-studio winforms

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

尝试在 xaml 中使用系统命名空间时出现错误

尝试在 xaml 中使用 String 类型时出现以下错误:

XLS0419 未定义的 CLR 命名空间。“clr-namespace”URI 引用了无法找到的命名空间“System”。

这是代码:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:markup="clr-namespace:MahApps.Metro.Markup;assembly=MahApps.Metro"
                    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                    xmlns:options="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options"
                    xmlns:system="clr-namespace:System;assembly=mscorlib"
                    mc:Ignorable="options">

    <!--  Matadata  -->
    <system:String x:Key="Theme.Name">Dark.Blue</system:String>
Run Code Online (Sandbox Code Playgroud)

'xmlns:system="clr-namespace:System; assembly=mscorlib"' 行是错误的位置。我只是从解决方案中另一个项目的另一个文件中复制了这段代码,并且该代码在那里工作正常。我不知道如何解决这个问题。

我尝试关闭 Visual Studio 并重新启动计算机。

wpf xaml .net-core

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

错误消息仅显示错误消息中的第一个字符。INotifyDataErrorInfo WPF

当 TextBox 为空时,我有一个简单的验证来显示错误消息。问题在于消息只显示消息的第一个字母。

在此处输入图片说明

在文本框样式中:

<Trigger Property="Validation.HasError" Value="True">
    <Setter Property="ToolTip" Value="{Binding Path=(Validation.Errors)[0].ErrorContent, RelativeSource={x:Static RelativeSource.Self}}" />
</Trigger>
Run Code Online (Sandbox Code Playgroud)

如果我将错误消息直接设置为 Setter 值,它会毫无问题地显示所有内容。

<Trigger Property="Validation.HasError" Value="True">
    <Setter Property="ToolTip" Value="This field is required!" />
</Trigger>
Run Code Online (Sandbox Code Playgroud)

XAML 代码:

<TextBox Text="{Binding Name, Mode=TwoWay,
                UpdateSourceTrigger=PropertyChanged, 
                ValidatesOnNotifyDataErrors=True,
                NotifyOnValidationError=True}" />
Run Code Online (Sandbox Code Playgroud)

C# 代码

private readonly Dictionary<string, string> _errors = new Dictionary<string, string>();
private readonly object _lock = new object();
public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged;

public IEnumerable GetErrors(string propertyName)
{
    string errorsForName;
    lock (_lock)
    {
        errorsForName = _errors.FirstOrDefault(e => e.Key == propertyName).Value;//.TryGetValue(propertyName, …
Run Code Online (Sandbox Code Playgroud)

c# wpf inotifydataerrorinfo wpf-style

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

如何在 C# WPF 中选中/取消选中列表框中的所有复选框?

我有一个ListBox包含复选框,DataTemplate并且有两个按钮“全选”和“取消全选”。我想通过单击选择和取消选择按钮来使该复选框选中所有并取消选中所有,我想INotifyPropertyChanged在课堂上实现。我怎样才能做到这些事情?

感谢您提前的回答..

XAML代码

  <StackPanel>
        <ListBox Name="lstUserDefination" 
 ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionMode="Multiple">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <ListBoxItem>
                    <CheckBox Name="chkUser" Content="{Binding AuthorityName}"/>
                    </ListBoxItem>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </StackPanel>
Run Code Online (Sandbox Code Playgroud)

C# 代码

   public partial class UserDefinationEdit : Window
{
    public ObservableCollection<Authority> authorityList { get; set; }

    public UserDefinationEdit()
    {
        InitializeComponent();
        CreateCheckBoxList();
        lstUserDefination.ItemsSource = authorityList;
    }


    private void Window_MouseDown(object sender, MouseButtonEventArgs e)
    {
        if (e.LeftButton == MouseButtonState.Pressed)
        {
            DragMove();
        }
    }

    public void CreateCheckBoxList()
    {
        authorityList = new ObservableCollection<Authority>();

        authorityList.Add(new Authority() {AuthorityValue = 0, AuthorityName …
Run Code Online (Sandbox Code Playgroud)

c# wpf checkbox listbox observablecollection

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

如何在启动时删除 App.xaml ResourceDictionary?

ResourceDictionaryApp.xaml文件中声明如下:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Skins/DefaultSkin.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试在启动时加载不同的皮肤(使用App.xaml.cs构造函数加载最后使用的ResourceDictionary皮肤)时,我发现ResourceDictionary设置Application.Resources覆盖了这个并恢复到 DefaultSkin.xaml 文件 - 即使我Application.Current.Resources.MergedDictionaries.Clear();之前使用过选择所需的皮肤。

当我删除ResourceDictionaryfrom时,我的应用程序运行良好Application.Resources- 但随后所有 xaml 引用在设计时都丢失了。如何在设计时保留此引用但在运行时将其删除,然后才能覆盖我的皮肤选择?

c# wpf skinning resourcedictionary

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

使用异步等待方法填充数据网格

我的英语不是很好,抱歉,但我尝试完美地讲述我的问题

这是我加载数据网格的内容

private Task Loading(Func<string> SearchStringForUser)
{

    return Task.Run(() =>
    {

        var query = database.Database.SqlQuery<VW_Users>("select * From VW_Users where 1 = 1 And GymID = " + PublicVar.ID + " " + SearchStringForUser());
        var user = query.ToList();
        Dispatcher.InvokeAsync(() =>
        {
            DataGrid_User.ItemsSource = user;
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

首先,我有一个 InvokeAsync 但它不能完美工作,我的意思是当加载的数据将列出时我的程序会挂起。不管怎样,这不是我的主要问题,但如果有人知道原因是什么,可以指出它,但我的主要问题是当我有+200行时。程序不会在 30 秒或更长时间内加载所有日期。看起来我的程序数据网格有 30 秒或更长时间为空。

我想按 10 行 10 行加载数据,我的意思是我想在加载 10 行时填充我的数据网格,在接下来的 10 行之后,例如 10 20 30 40 .... 这样我的数据网格将永远不会为空,并且数据将缓慢加载有人可以告诉我最好的方法吗?

c# wpf datagrid

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

设置materialDesign:PackIcon代码后面

我正在尝试分配 MaterialDesign:PackIcon 代码。这是我的代码。

for (int i = 0; i<PrinterNumber; i++)
{
    Button btn_Restart = new Button();
    btn_Restart.Name = string.Format("PrinterRestartButtton{0}", i);
    btn_Restart.Width = 50;
    btn_Restart.Height = 25;
    btn_Restart.VerticalAlignment = VerticalAlignment.Center;
    btn_Restart.HorizontalAlignment = HorizontalAlignment.Left;
    btn_Restart.Content = "Restart";
    //btn_Restart.Visibility = Visibility.Hidden;
    btn_Restart.Click += Btn_Restart_Click;
    btn_Restart.Style = (Style) Application.Current.TryFindResource("MaterialDesignRaisedDarkButton");
    Grid.SetRow(btn_Restart, i + 2);
    Grid.SetColumn(btn_Restart, 10);
    grd_WorkArea.Children.Add(btn_Restart);
}
Run Code Online (Sandbox Code Playgroud)

如何将MaterialDesign:PackIcon Kind="Restart"应用于 btn_Restart.Content 属性?

c# wpf button material-design

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

在 Datagrid wpf 上对数据进行分组

我想使用包含组名并包含所有 ClassMate 名称的扩展器重新组合我的数据。

这是我的班级组:

public class Group{ 
public List<ClassMate> CLGroup { get; set; }
public string GroupName { get; set; }}
Run Code Online (Sandbox Code Playgroud)

我的 classMate 类:

public class ClassMate: INotifyPropertyChanged{
public string Name { get; set; }
public string DisplayName { get; set; }}
Run Code Online (Sandbox Code Playgroud)

我试图用这个 Xaml 做到这一点,但我不知道为什么它不起作用

<DataGrid x:Name="gridMates"  ItemsSource="{Binding Groups }"  >
    <DataGrid.GroupStyle>
        <!-- Style for groups at top level. -->
        <GroupStyle>
            <GroupStyle.ContainerStyle>
                <Style TargetType="{x:Type GroupItem}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GroupItem}">
                                <Expander IsExpanded="True" >
                                    <Expander.Header>
                                        <DockPanel>

                                        <TextBlock Text="{Binding Path=GroupName}" /> …
Run Code Online (Sandbox Code Playgroud)

c# wpf grouping datagrid wpfdatagrid

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

UWP 用户控件项目类型

其实我有一些UWP项目,需要重构一些冗余代码。

在我的 GUI 中,这部分代码有很多次

<ListView ItemsSource="{Binding Model.EstadoValidar.ListaInconsistencias }" Grid.Row="9">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock Text="{Binding Descripcion}" Height="Auto" TextWrapping="Wrap"/>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>    
Run Code Online (Sandbox Code Playgroud)

并且需要将其转换为自定义控件。

我使用 WPF 控件库 (.NET Framework) 添加了一个名为控件的新项目,它无法识别ListViewGridView对象。

必须使用什么样的项目来构建我的客户控件?

实际使用 VS 2017 15.3,项目目标为 .NET 4.6.2 / Standard 1.4

c# wpf uwp

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

在Xamarin Forms中绑定BackgroundColor属性ContentPage

我需要绑定字符串的背景颜色.我的xaml代码:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Fimap.LoadingPage"
             BackgroundColor="{Binding ColorBackground}">
    <ContentPage.Content>
        <Grid Padding="130" x:Name="griglia">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="10*"></RowDefinition>
                <RowDefinition Height="40*"></RowDefinition>
                <RowDefinition Height="25*"></RowDefinition>
                <RowDefinition Height="25*"></RowDefinition>
            </Grid.RowDefinitions>
            <Image Source="logo.png" Grid.Row="1"></Image>
            <ActivityIndicator x:Name="loading" Grid.Row="2" IsVisible="true" Color="{Binding ColorBackground}" IsRunning="true" />
        </Grid>
    </ContentPage.Content>
</ContentPage>
Run Code Online (Sandbox Code Playgroud)

我的代码隐藏代码:

...
public String ColorBackground { get; set; } = "#E40000";
...
Run Code Online (Sandbox Code Playgroud)

我确实ColorBackground在公共Class()costructor之前设置了它.

但是不要工作......我哪里错了?

谢谢大家

c# binding xamarin.forms

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