如何在 wpf 中设置 sub-value 动态创建的扩展器
How to set sub-value of dynamically created expander in wpf
我有一个方法,它接受一个 ComboBoxItem 名称并根据该 ComboBoxItem 的名称创建一个带有 header 的扩展器。如下所示。
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedItem = combobox.SelectedItem as ComboBoxItem;
if (selectedItem != null)
{
string name = selectedItem.Name;
Expander expander = new Expander {Header = name};
}
}
然后我想打开文件对话框以 select 文件并将扩展器的 sub-value 设置为文件的名称 selected。带有文件对话框的代码结合上面的代码如下所示。
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedItem = combobox.SelectedItem as ComboBoxItem;
if (selectedItem != null)
{
string name = selectedItem.Name;
Expander expander = new Expander {Header = name};
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.DefaultExt = ".xlsm";
dlg.Filter = "Excel Files (*.xlsx) | *.xlsx";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
//not sure what to do here, something like this maybe?
//this.expander.?subvalue? = dlg.FileName;
}
}
}
我知道我可以使用任何东西作为 sub-value,比如标签或任何东西,但我不确定如何将它附加到新创建的扩展器。谢谢
我不确定我是否理解您要查找的内容,但是扩展器没有 SubValue
属性。可能您正在寻找的是 Content
属性.
this.expander.Content = new TextBlock(){Text=dlg.FileName};
我有一个方法,它接受一个 ComboBoxItem 名称并根据该 ComboBoxItem 的名称创建一个带有 header 的扩展器。如下所示。
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedItem = combobox.SelectedItem as ComboBoxItem;
if (selectedItem != null)
{
string name = selectedItem.Name;
Expander expander = new Expander {Header = name};
}
}
然后我想打开文件对话框以 select 文件并将扩展器的 sub-value 设置为文件的名称 selected。带有文件对话框的代码结合上面的代码如下所示。
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedItem = combobox.SelectedItem as ComboBoxItem;
if (selectedItem != null)
{
string name = selectedItem.Name;
Expander expander = new Expander {Header = name};
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.DefaultExt = ".xlsm";
dlg.Filter = "Excel Files (*.xlsx) | *.xlsx";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
//not sure what to do here, something like this maybe?
//this.expander.?subvalue? = dlg.FileName;
}
}
}
我知道我可以使用任何东西作为 sub-value,比如标签或任何东西,但我不确定如何将它附加到新创建的扩展器。谢谢
我不确定我是否理解您要查找的内容,但是扩展器没有 SubValue
属性。可能您正在寻找的是 Content
属性.
this.expander.Content = new TextBlock(){Text=dlg.FileName};