我有一個包含一個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