在WPF使用中读取一个配置文件获得一个结构体list,然后将数据绑定到Combobox下拉列表框中,如何实现

在WPF使用中读取一个配置文件获得一个结构体list,然后将数据绑定到Combobox下拉列表框中,如何实现,第1张

不用mvvm的话,so easy

新建 一个silverlight 4工程 在Window1xaml加入一个comboBox1

后台中加个student 的类

public class Student

{

public string Name{get;set;}

public int Age{get;set;}

}

public Window1()

{

InitializeComponent();

List<Student> StudList =new List<Student>();

StudListAdd(new Student(){ Name="张飞",Age=21 });

StudListAdd(new Student(){ Name="曹 *** ",Age=22 });

StudListAdd(new Student(){ Name="关公",Age=23 });

StudListAdd(new Student(){ Name="如花",Age=24 });

comboBox1ItemsSource=StudList;

comboBox1DisplayMemberPath="Name";

}

运行下看看

你List 想读配置文件的话Student 这个类就跟着变下,wpf基于属性绑定,不是事件驱动,想入门的话建议看下[深入浅出WPF完整版]刘铁猛出的,目前国人出的wpf就他的写的不错的书

还有你的配置文件应该是xml格式文件,要新建个MeterList的类 要用 SystemXmlXmlDocument这个类来读配置文件,来填冲MeterList这个类

C#获取当前应用程序所在路径及环境变量 一、获取当前文件的路径 string str1=ProcessGetCurrentProcess()MainModuleFileName;//可获得当前执行的exe的文件名。 string str2=EnvironmentCurrentDirectory;//获取和设置当前目录(即该进程从中

如果这个textbox是一个页面上的控件,应该是可以在后台直接获得的。你可以重新编译下工程项目就行了。如果这个textbox是在某个控件的template里的话,后台是不能直接获取的,但你可以通过视觉树的方式获取,网上有相关资料可以查阅借鉴。

obj as DataRowView;

改成强制类型转换试一试?

(DataRowView)DataRowView

另外,调试单步到 curltem ,obj你看看这俩有值吗

使用ListView的MouseDoubleClick事件,当你选中一行时,会得到ListViewSelectedItem,这个SelectedItem就是ListView数据源集合的一项,这样你就可以想显示什么就显示什么。

比如:ListView的DataContext绑定的数据源是List<Person>,Person类有三个属性(Name,Age,Sex),那么ListViewSelectedItem的值就是Person的一个对象,你想获得Text数据(假设是Name),只要使用var person = ListViewSelectedItem as Person;personName即可

 private DependencyObject FindParentControl<T>(DependencyObject control)

        {

            DependencyObject parent = VisualTreeHelperGetParent(control);

            while (parent != null && !(parent is T))

            {

                parent = VisualTreeHelperGetParent(parent);

            }

            return parent;

        }

        

        

        public T GetChildObject<T>(DependencyObject obj, string name) where T : FrameworkElement

        {

            DependencyObject child = null;

            T grandChild = null;

            for (int i = 0; i <= VisualTreeHelperGetChildrenCount(obj) - 1; i++)

            {

                child = VisualTreeHelperGetChild(obj, i);

                if (child is T && (((T)child)Name == name | stringIsNullOrEmpty(name)))

                {

                    return (T)child;

                }

                else

                {

                    grandChild = GetChildObject<T>(child, name);

                    if (grandChild != null)

                        return grandChild;

                }

            }

            return null;

        }

this maybe help you

找grid用GetChildObject这个方法,parentControl是这个模板应用的目标控件

Grid grid = GetChildObject<Grid>(parentControl, "PART_Connector

");

注意判断是否返回null

前面:

<Grid>

<TreeView Name="tvDirectories" ItemsSource="{Binding}" >

</TreeView>

<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="401,276,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click"/>

</Grid>

后台:

private void button1_Click(object sender, RoutedEventArgs e)

{

var list = new List<string>();

string path = @"D:\软件安装程序\应用软件\";//文件夹的路径

if (DirectoryExists(path))//判断要保存的目录文件是否存在。

{

var directory = new DirectoryInfo(path);

FileInfo[] collection = directoryGetFiles("exe");//指定类型

foreach (FileInfo item in collection)

{

string fullname = itemNameToString();

string filename = fullnameSubstring(0, fullnameLastIndexOf(""));//去掉后缀名。

listAdd(filename);

}

tvDirectoriesDataContext = list;

}

else

{

MessageBoxShow("文件夹不存在!");

}

}

以上就是关于在WPF使用中读取一个配置文件获得一个结构体list,然后将数据绑定到Combobox下拉列表框中,如何实现全部的内容,包括:在WPF使用中读取一个配置文件获得一个结构体list,然后将数据绑定到Combobox下拉列表框中,如何实现、如何在WPF中获取程序执行路径ExecutablePath、WPF前台xaml中的控件名在后台拿不到,后台代码中显示“当前上下文不存在名称‘xxx’”等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9391101.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存