gpt4 book ai didi

c# - DataGridComboBoxColumn : how to set TextBinding

转载 作者:行者123 更新时间:2023-12-03 10:44:56 25 4
gpt4 key购买 nike

我正在使用 C#、.NET Framework 4.5.1、MVVM Light 框架和 Entity Framework 6.1.3 开发 WPF。

我有这个DataGrid在一个窗口中:

<DataGrid x:Name="LevelConfigurationDataGrid" Grid.Column="1" Grid.Row="1" Margin="20,0" ItemsSource="{Binding LevelConfigs}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding CODE_LEVEL}" Header="Nivel"/>
<DataGridTextColumn Binding="{Binding LEVEL_NAME}" Header="Nombre"/>
<DataGridCheckBoxColumn Binding="{Binding IS_ACTIVE}" Header="¿Activa?"/>
<DataGridComboBoxColumn Header="Tipo de código" SelectedValueBinding="{Binding CODE_TYPE}" SelectedItemBinding="{x:Null}" TextBinding="{x:Null}"/>
<DataGridComboBoxColumn Header="Origen del código" SelectedValueBinding="{Binding CODE_SOURCE}" SelectedItemBinding="{x:Null}" TextBinding="{x:Null}"/>
<DataGridComboBoxColumn Header="Tipo de Helper Code" SelectedValueBinding="{Binding HELPER_CODE_TYPE}" SelectedItemBinding="{x:Null}" TextBinding="{x:Null}"/>
<DataGridComboBoxColumn Header="Origen de Helper Code" SelectedValueBinding="{Binding HELPER_CODE_SOURCE}" SelectedItemBinding="{x:Null}" TextBinding="{x:Null}"/>
<DataGridTextColumn Binding="{Binding QUANTITY}" Header="Cantidad"/>
<DataGridTextColumn Binding="{Binding REMAINING_CODES}" Header="Restantes"/>
<DataGridTextColumn Binding="{Binding TRZ_ENDPOINT}" Header="TRZ IP"/>
<DataGridTextColumn Binding="{Binding TRZ_ENDPORT}" Header="TRZ Puerto"/>
</DataGrid.Columns>
</DataGrid>

以及 MainViewModel :
public ObservableCollection<CODE_LEVEL_CONFIGURATION> LevelConfigs
{
get { return m_LevelConfigs; }
set
{
m_LevelConfigs = value;
RaisePropertyChanged("LevelConfigs");
}
}

以及 CODE_LEVEL_CONFIGURATION :
public class CODE_LEVEL_CONFIGURATION
{
public byte CODE_LEVEL { get; set; }
public string LEVEL_NAME { get; set; }
public bool IS_ACTIVE { get; set; }
public byte CODE_TYPE { get; set; }
public byte CODE_SOURCE { get; set; }
public byte? HELPER_CODE_TYPE { get; set; }
public byte? HELPER_CODE_SOURCE { get; set; }
public int QUANTITY { get; set; }
public int REMAINING_CODES { get; set; }
public string TRZ_ENDPOINT { get; set; }
public int? TRZ_ENDPORT { get; set; }
}

但是当我运行应用程序时,我在 DataGridComboBoxColumn 上看不到任何内容.

不知道怎么设置 TextBinding属性(property)。
CODE_LEVEL_CONFIGURATION.CODE_TYPE值是一个 ID。我需要为每个可能的值显示一个描述性文本。而且,当我得到这个值时,我需要得到它的 ID将其存储在数据库中。

我需要 enum或为每个 CODE_TYPE 获取文本的东西值(value)?

最佳答案

这是因为您没有设置 ItemsSource的组合框。你应该这样做:

<DataGridComboBoxColumn ItemsSource="{Binding Path=}" DisplayMemberPath="" SelectedItemBinding="{Binding Path=}"></DataGridComboBoxColumn>
DisplayMemberPath定义显示所选项目的哪个属性

SelectedItemBinding您可以将所选项目绑定(bind)到 View 模型中的属性。

如果您只需要所选项目的特定值,请使用 SelectedValueBindingSelectedValuePath .

关于c# - DataGridComboBoxColumn : how to set TextBinding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30435413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com