ItemsControl中的Button事件,读取自身binding内容的方法
本文最后更新于 2018 天前,其中的信息可能已经有所发展或是发生改变。

例子

直接用一个具体例子来示范吧,比如我的xaml代码如下:

<ItemsControl Name="toSendList">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid Margin="0,3,0,0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="4*"/>
                    <ColumnDefinition Width="auto"/>
                    <ColumnDefinition Width="20"/>
                </Grid.ColumnDefinitions>
                <TextBlock Text="{Binding id}" Grid.Column="0" HorizontalAlignment="Center" Margin="2"/>
                <TextBox Text="{Binding text}" Grid.Column="1" HorizontalAlignment="Stretch" Margin="0,0,2,0"/>
                <Button Content="{Binding commit}" Grid.Column="2" HorizontalAlignment="Stretch" Click="knowSendDataButton_click"/>
                <CheckBox IsChecked="{Binding hex}"  Grid.Column="3" HorizontalAlignment="Center" Margin="2"/>
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

然后我的绑定代码如下:

ObservableCollection<ToSendData> toSendListItems = new ObservableCollection<ToSendData>();

//这个是主窗口loaded事件,需要在xaml里设置
private void Window_Loaded(object sender, RoutedEventArgs e)
{
    toSendList.ItemsSource = toSendListItems;
}

private void knowSendDataButton_click(object sender, RoutedEventArgs e)
{
    //我这里面改写些啥呢?
    //怎么获取绑定的text数据呢
}

我binding的class结构如下:

public class ToSendData
{
    public int id { get; set; }
    public string text { get; set; }
    public bool hex { get; set; }
    public string commit { get; set; }
}

解决

其实解决也很简单,我们给button控件加个Tag,内容是binding本身,就能调用了:

<Button Content="{Binding commit}" Tag="{Binding}" Grid.Column="2" HorizontalAlignment="Stretch" Click="knowSendDataButton_click"/>

然后click事件可以这样获取值了:

private void knowSendDataButton_click(object sender, RoutedEventArgs e)
{
    ToSendData data = ((Button)sender).Tag as ToSendData;
    //这样就获取了binding的数据了,直接调用data.text就能取出来
}
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇