我有一个包含一个ItemControl标签的XAML页面(应用程序使用MVVM光框架):ItemControl未绑定对象正确
<ItemsControl MinWidth="100" MinHeight="25" ItemsSource="{Binding Path=Options}" HorizontalAlignment="Left" d:LayoutOverrides="Height" Margin="10,0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
这种控制有是列表中的项目源选项对象。此项目的控制数据模板如下:
<DataTemplate DataType="{x:Type Sales:Option}">
<local:SalesOptionButton d:LayoutOverrides="Width, Height" DataContext="{Binding}"/>
</DataTemplate>
我有一个与SalesOptionButton控制是如下相关的视图模型:
公共类SalesOptionButton { 私人字符串_name; private Option _Option;
public ICommand SelectedOptionButtonCommand { get; set; }
public string Name
{
get { return _name; }
set { SetStructPropertyValue(ref _name, value); }
}
public Option Option
{
get { return _scriptOption; }
set { SetPropertyValue(ref _scriptOption, value); }
}
public SalesScriptOptionButton(ScriptOption option)
{
Option = option;
Name = option.OptionText;
}
protected override void RegisterForMessages()
{
SelectedOptionButtonCommand = new RelayCommand(OptionButtonSelected);
}
private void OptionButtonSelected()
{
MessengerService.Send(ScriptOptionSelectedMessage.Create(ScriptOption));
}
protected override void SetDesignTimeInfo(){}
}
下面是选项控制的XAML:
<UserControl [INCLUDES]>
<Button Height="25" Padding="1" MinWidth="100" Content="{Binding Name}" Command="{Binding SelectedOptionButtonCommand}"/>
</UserControl>
这样做是什么,为每个在数据源,创建一个按钮选项。这些按钮应该显示选项的名称,并且当单击该按钮时,将消息发送到将处理该点击的主应用程序(设置选择的选项)。
我看到的问题是正在创建按钮,但没有其他任何被绑定(没有选项名称显示在按钮上,并且按钮单击不起作用)。任何人都可以给我一个想法,为什么这不像我认为它应该是?
你在哪里定义:'' –
2012-03-08 22:54:38