小编dar*_*ard的帖子

动态添加多个按钮到wpf窗口?

如何在c#中向窗口添加多个按钮?这就是我需要做的...我从字典中获取多个用户值(在合理范围内,只有@ 5-6值).对于每个值,我需要创建一个按钮.现在,我如何命名按钮,而不是按钮中的文字?我如何为每个按钮定义"点击"方法(它们都会有所不同)?如果我不再需要它,如何擦除按钮?

c# wpf button

14
推荐指数
3
解决办法
5万
查看次数

Dispatcher.BeginInvoke,尝试使用lambda从textblock获取字符串集,但是获得转换错误

我试图从按钮调用选定的列表框项,而不是listbox.selecteditemchangedwpf中的方法.所以,当我尝试

string yadda = listbox.SelectedItem.ToString();
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

调用线程无法访问此对象,因为另一个线程拥有它.

所以,我想要做的是以下内容:

Dispatcher.BeginInvoke(() =>
                    {
                        lbxSelectedItem =  (lbxFileList.SelectedItem as TextBlock).Text;
                    });
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为我得到另一个例外:

无法将lambda表达式转换为类型'System.Delegate',因为它不是委托类型

c# wpf lambda delegates

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

换行将字符串拆分成多个字符串?

我有传入的数据,需要分成多个值...即.

2345 \n564532 \n345634 \n234 234543 \n1324 2435 \n

当我收到它时,长度是不一致的,当它存在时间距是不一致的,我想分析每个\n之前的最后3位数.如何断开字符串并将其转换为新字符串?就像我说的,这一轮,它可能有3个\n命令,下一次,它可能有10个,我如何创建3个新字符串,分析它们,然后在接下来的10个进入之前销毁它们?

string[] result = x.Split('\r');
result = x.Split(splitAtReturn, StringSplitOptions.None);
string stringToAnalyze = null;

foreach (string s in result)
{
    if (s != "\r")
    {
        stringToAnalyze += s;
    }
    else
    {

          how do i analyze the characters here?
    }
}
Run Code Online (Sandbox Code Playgroud)

c# string newline string-split

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

directory.GetFiles,我如何让它在找到它们时吐出物品?

我正在使用Directory.GetFiles给我mp3文件,我想填写ListBox结果,但不是在它通过该方法时停止程序,我可以让它搜索并填补它ListBox,因为它获得了mp3文件?

所以我正在使用的是如下(并且它未能在时间添加它们,它在完成后立即添加它们)

private List<string> Getmp3sFromFolders(string folder)
    {
       List<string> fileArray = new List<string>();

       try
       {
           DirectoryInfo dir = new DirectoryInfo(folder);
           var files = dir.EnumerateFiles("*.mp3");
           foreach (var file in files)
           {

               fileArray.Add(file.FullName);
               Dispatcher.BeginInvoke(_AddMP3ToListbox, file.Name);
           }

           var directories = dir.EnumerateDirectories();
           foreach (var subdir in directories)
           {
               fileArray.AddRange(Getmp3sFromFolders(subdir.FullName));

           }

          // lblFolderSearching.Content = folder.ToString();
       }
       catch
       {

       }
       return fileArray;
    }
Run Code Online (Sandbox Code Playgroud)

我添加了 _AddMP3ToListbox = AddMP3ToListbox

它确实将mp3添加到列表框中,但它一次性完成,而不是一旦找到它.我怎样才能解决这个问题?

c# filesystems wpf file-io listbox

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

serialport响应EventHandler,但不是ReadExisting或ReadLine?

我有一个程序从c#中的串口读取.我需要快速写入端口,从中读取,然后关闭它.我不能把它打开.我知道串口缓慢读写,我试图将ReadTimeout和WriteTimeout属性设置为高,并添加了一个thread.Sleep来尝试拖动设备的读写时间.这是一些代码:

我写入端口的方法:

    private void CheckPorts(string testMessage)
    {

        foreach (string s in SerialPort.GetPortNames())
        {
            portNumber = Int32.Parse(s.Remove(0, 3));
            testSerial = new SerialPort(s, baudRate, Parity.None, 8, StopBits.One);
            if (testSerial.IsOpen)
            {
                testSerial.Close();
            }
            testSerial.ReadTimeout = 2000;
            testSerial.WriteTimeout = 1000;
            testSerial.Open();
            if (testSerial.IsOpen)
            {
                string received;
                testSerial.DiscardInBuffer();
                try
                {
                    //testSerial.DataReceived += new SerialDataReceivedEventHandler(testSerialPort_DataReceived);

                    testSerial.Write(testMessage);
                    System.Threading.Thread.Sleep(2000);

                    received = testSerial.ReadExisting();  //EITHER I USE THIS OR EVENT HANDLER, NOT BOTH
                }
                catch (TimeoutException e)
                {
                    testSerial.Close();
                    continue;
                }

               if (received.Length > 0)
                {
                    MessageReceived(received);
                }
                testSerial.Close();
            } …
Run Code Online (Sandbox Code Playgroud)

c# serial-port

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

带有<10k条目的wpf列表框...我如何使其高效?

iphone一次有10个列表框条目,它不会'加载所有10k条目并同时滚动它们.它添加一个条目,一次减去一个条目.那么你如何在wpf列表框中执行此操作?我如何制作,说20个列表框条目,并添加一个或两个,并减去相同的数量?数据绑定列表框是否会解决此性能问题?

c# wpf listbox

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

c#检查字典是否通过事件处理程序更改了另一个类中的值?

我有一个单独的类,比方说class2,带有字典.我希望用字符号填充字典.

public class Class2
{
    public Class2()
    {
         public Dictionary<string, string> someDictionary = new Dictionary<string, string>();
         //I DON"T KNOW HOW TO CREATE AN EVENTHANDLER HERE FOR THE DICTIONARY
         //how do i create the eventhandler if someDictionary changes?
    }
}
Run Code Online (Sandbox Code Playgroud)

让我们说在class1中,我有一个listview,我想填充字典值,但更改它们,因为class2中的字典更改.

public class Class1
{
    public Class1()
    { 
          Class2 class2 = new Class2();
          class2.SomeDictionaryChanged += new EventHandler(someDictionary_SomeDictionaryChanged);
    } 

    void someData_SomeDataChanged(object sender, EventArgs e) 
    {
         listView1.Add(class2.someDictionary); 
    }

} 
Run Code Online (Sandbox Code Playgroud)

如何在class2中为字典创建一个eventhandler,如何检查class1中的字典是否发生了变化?

所有这些都是PSEUDOCODE,它不会编译,我不知道怎么做,这就是我问的问题.

c# dictionary event-handling

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

wpf MVVM中的多个DataContext?

我有一个窗口,我想绑定来自2个不同的DataModel的数据上下文.我遇到过这篇文章: WPF将多个控件绑定到不同的datacontexts,并且它在我的代码中不起作用.我不知道你是否必须设置一个类的"新"实例才能使它工作,但我不能让它显示我的数据.这是一个样本

<Grid>
    <Button Command="{Binding FurnaceDataViewModel.StartButtonCommand}"/>
    <Button Command="{Binding FurnaceDataViewModel.StopButtonCommand}"/>
    <Button Command="{Binding FurnaceDataViewModel.ClearButtonCommand}"/>

    <Label Content="{Binding FurnaceDataModel.TotalTimeIdle}" />
    <Label Content="{Binding FurnaceDataModel.GallonsUsed}" />
    <Label Content="{Binding FurnaceDataModel.TotalMoney}" />
    <Label Content="{Binding FurnaceDataModel.TotalTimeRun}" />       

</Grid>
Run Code Online (Sandbox Code Playgroud)

我有我的MainWindow类:

FurnaceDataContext dataContext = new FurnaceDataContext();
InitializeComponent();
DataContext = dataContext;
Run Code Online (Sandbox Code Playgroud)

这是我的DataContext类

class FurnaceDataContext
{
    public FurnaceDataViewModel FurnaceDataViewModel { get; set; }
    public FurnaceDataModel FurnaceDataModel { get; set; }
    public SqlDataModel SqlDataModel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我无法正确显示我的文本或我的按钮命令.有任何想法吗?

wpf mvvm

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

如何从WPF中将TextBlock转换为c#中的字符串?

如何TextBlock从wpf中将c#转换为c#中的字符串?我有一个包含文本块的列表框,以便更改前景色.但是当我得到listbox.selecteditem时,它显然会返回一个文本块,但我需要知道文本块是什么,转换成字符串.我怎么做?

c# wpf textblock

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