我(似乎是)在WPFWPF多列組合框用頭
組合框中我需要用它綁定到一個ViewModel頭一個ComboBox一個相當簡單的要求,
我發現關於這個主題很多其他的問題和答案,但沒有人似乎爲我考慮以下(ninject)財產的具體要求
工作
public List<OrderBatchVm> OrderBatches
{
get
{
return _orderBatches;
}
private set
{
Set(() => OrderBatches, ref _orderBatches, value);
}
}
而這個視圖模型
public class OrderBatchVm
{
public string Name { get; set; }
public DateTime Time { get; set; }
public string User { get; set; }
}
我已經想出了各種其他堆棧溢出問題
<ComboBox Width="400" Height="22" ItemsSource="{DynamicResource items}" VerticalAlignment="Center" >
<ComboBox.Resources>
<CompositeCollection x:Key="items">
<ComboBoxItem IsEnabled="False">
<Grid TextElement.FontWeight="Bold" Width="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.Children>
<TextBlock Grid.Column="0" Text="Name"/>
<TextBlock Grid.Column="1" Text="User"/>
<TextBlock Grid.Column="2" Text="Date"/>
</Grid.Children>
</Grid>
</ComboBoxItem>
<Separator/>
<CollectionContainer Collection="{Binding OrderBatches}"/>
</CompositeCollection>
<DataTemplate DataType="viewModel:OrderBatchVm">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="A"/>
<ColumnDefinition Width="5"/>
<ColumnDefinition SharedSizeGroup="B"/>
</Grid.ColumnDefinitions>
<Grid.Children>
<TextBlock Grid.Column="0" Text="{Binding Name}"/>
<TextBlock Grid.Column="1" Text="{Binding User}"/>
<TextBlock Grid.Column="2" Text="{Binding Time}"/>
</Grid.Children>
</Grid>
</DataTemplate>
</ComboBox.Resources>
</ComboBox>
上面產生的組合框的標題下面,但是數據不會被綁定到CollectionContainer
經過對這種方法的一點研究,我想我理解它最基本的嘗試做什麼,以及CollectionContainer
的缺陷,儘管我不確定我試圖實現的是可能的,或者如何實現E - 這
感謝
更新
下不實際工作,但它沒有頭這是我在這種情況下
<ComboBox Width="400" Height="22" ItemsSource="{Binding OrderBatches}" VerticalAlignment="Center" >
<ComboBox.ItemTemplate>
<DataTemplate DataType="viewModel:OrderBatchVm">
<Grid Width="400">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.Children>
<TextBlock Grid.Column="0" Text="{Binding Name}"/>
<TextBlock Grid.Column="1" Text="{Binding User}"/>
<TextBlock Grid.Column="2" Text="{Binding Time}"/>
</Grid.Children>
</Grid>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>