【发布时间】:2013-04-16 10:03:59
【问题描述】:
这似乎是一个简单的问题,但我无法弄清楚。 风景:
在 C#/WPF/MVVM 中,我有一个显示一些数据的 DataGrid。一个字段(一行的一个单元格)是一个整数值。现在我需要为该单元格显示一个组合框,如果值为 0,则显示“本地”,如果值为 1 或更大,则显示“网络”。这个怎么绑定?
谢谢。
【问题讨论】:
这似乎是一个简单的问题,但我无法弄清楚。 风景:
在 C#/WPF/MVVM 中,我有一个显示一些数据的 DataGrid。一个字段(一行的一个单元格)是一个整数值。现在我需要为该单元格显示一个组合框,如果值为 0,则显示“本地”,如果值为 1 或更大,则显示“网络”。这个怎么绑定?
谢谢。
【问题讨论】:
您应该可以使用DataGridTemplateColumn Template 来执行此操作。
以下是帮助示例:
<DataGrid Grid.Row="0"
AutoGenerateColumns="False" Height="Auto"
SelectionMode="Single" ItemsSource="{Binding MyViewItemModels}"
RowDetailsVisibilityMode="Collapsed" HeadersVisibility="Column" CanUserAddRows="False"
GridLinesVisibility="None" AlternationCount="2" AlternatingRowBackground="GhostWhite" Background="White">
<DataGrid.Columns>
<DataGridTemplateColumn IsReadOnly="True" MinWidth="50" Width="70" >
<DataGridTemplateColumn.Header>
<Border Height="30">
<Label Content="My Name"/>
</Border>
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Height="16" ItemsSource="{Binding MyItems, Mode=OneWay}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
【讨论】:
SelectedValue 的另一个属性并将您的逻辑写入其set。