【发布时间】:2013-11-27 18:05:54
【问题描述】:
这部分已准备就绪并可以运行:
“如何绑定一列ComboBox”
<DataGridTemplateColumn Header="Bot Plate Thickness">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding SteelThickness, RelativeSource={RelativeSource AncestorType=Window}}" SelectedItem="{Binding BottomPlateThickness, UpdateSourceTrigger=PropertyChanged}" SelectionChanged="ComboBox_SelectionChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
这是我模型的相关部分:
public class GridModel : PropertyChangedBase
{
private string _BottomPlateThickness;
public string BottomPlateThickness
{
get
{
return _BottomPlateThickness;
}
set
{
if (_BottomPlateThickness != value)
{
_BottomPlateThickness = value;
RaisePropertyChanged("BottomPlateThickness");
}
}
}
}
这是另一部分:
public List<string> SteelThickness { get; set; }
SteelThickness = new List<string> { "0.3750", "0.4375", "0.5000", "0.6250", "0.7500", "0.8650", "1.0000" };
如您所见,ComboBox 内容基于静态列表。我读到为了能够打开/关闭,我必须将该列基于ObservableList<object>。
TIA。
【问题讨论】:
-
我不明白......你的意思是,将“BottomPlateThickness”绑定到选定的组合框行?
-
没错。顺便说一句:它绑定到 COLUMN,而不是行。它运行良好,但我需要添加启用/禁用的功能。
-
我无法理解您的要求:\
-
我感觉我的模型中需要一个嵌套类。
-
如果你有
Enabled的属性,那你就不能用<ComboBox IsEnabled="{Binding IsEnabled}" ...吗?