wpf のヘルプが必要です。私が基本的にやりたいことは、2つの画像とテキストボックスを含むItemsControlsのコレクション(データバインディングから)でエキスパンダーを埋めることです。期待した結果が得られませんでした。誰かが私を助けてくれますか?
ここに私のXAMLがあります:
<Expander Name="OnlineExpander"
HorizontalAlignment="Stretch"
Header="Online Friends"
IsExpanded="True">
<Expander.Content>
<Grid>
<ItemsControl Height="50"
VerticalAlignment="Top">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Height="30"
VerticalAlignment="Top"
Background="Brown"
Name="itemGridTemp">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="61*"
Name="PictureColumn" />
<ColumnDefinition Width="271*"
Name="NameColumn" />
<ColumnDefinition Width="33*"
Name="StatusColumn" />
</Grid.ColumnDefinitions>
<Image Height="30"
Width="30"
Source="{Binding Path=Image}"
Grid.ColumnSpan="1"
MouseEnter="Image_MouseEnter"></Image>
<TextBox Name="txtName"
Grid.ColumnSpan="2"
Text="{Binding Name}"
Width="271"
Foreground="#FFEEB8B8"></TextBox>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Expander.Content>
</Expander>
および分離コード:
private List<Friend> _Friends;
public List<Friend> Friends { get { return _Friends; } }
private void Window_Loaded(object sender, RoutedEventArgs e) {
Image img = new Image();
img.RenderSize = new Size(30, 30);
img.OpacityMask = Brushes.CadetBlue;
_Friends = new List<Friend> {
new Friend{Name="John Smith",IsOnline=true,Image=img},
new Friend{Name="Name Surname",IsOnline=true,Image=img},
new Friend{Name="Name2 surname2", IsOnline=false,Image=img}
};
OnlineExpander.DataContext = Friends;
}
と呼ばれるクラスがありFriend
ます:
public class Friend {
private Image _Image;
private String _Name;
private bool _IsOnline;
public Image Image { get { return _Image; } set { _Image = value; } }
public string Name { get { return _Name; } set { _Name = value; } }
public bool IsOnline { get { return _IsOnline; } set { _IsOnline = value; } }
}
誰かが私を助けてくれることを願っています。私の悪い英語でごめんなさい;)