Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#XAML中访问DataTemplate内的控件(按钮)_C#_Wpf_Xaml_Listview_Datatemplate - Fatal编程技术网

如何在c#XAML中访问DataTemplate内的控件(按钮)

如何在c#XAML中访问DataTemplate内的控件(按钮),c#,wpf,xaml,listview,datatemplate,C#,Wpf,Xaml,Listview,Datatemplate,我正在尝试制作一个有趣的漫画/meme应用程序,比如funnyjunk.com,它在每个漫画上都包含一个讨厌和喜欢的按钮,比如: 我的问题是:我无法从代码隐藏中访问DataTemplate中的厌恶/喜欢按钮。有没有办法访问DataTemplate中的按钮 在本例中,我使用的是ListView,下面是我的DataTemplate的外观: <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientatio

我正在尝试制作一个有趣的漫画/meme应用程序,比如funnyjunk.com,它在每个漫画上都包含一个讨厌和喜欢的按钮,比如:

我的问题是:我无法从代码隐藏中访问DataTemplate中的厌恶/喜欢按钮。有没有办法访问DataTemplate中的按钮

在本例中,我使用的是ListView,下面是我的DataTemplate的外观:

<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Vertical">
            <StackPanel>
                <Image Source="{Binding Image}" Height="600" Width="800" Stretch="UniformToFill"/>    
            </StackPanel>
            <StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
                <Button x:Name="blike" Content="L" FontSize="70" HorizontalAlignment="Center" VerticalAlignment="Center" Click="blike_Click"/>
                <TextBlock x:Name="tblrate" Text="0" FontSize="70" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                <Button x:Name="bdislike" Content="D" FontSize="70" HorizontalAlignment="Center" VerticalAlignment="Center" Click="bdislike_Click"/>
            </StackPanel>
</StackPanel>
这是我的DataContext(我将其命名为“数据源”):

公共类数据源
{
公共int ID{get;set;}
公共字符串标题{get;set;}
公共字符串图像{get;set;}
公共数据源(int\u ID、string\u Image、string\u Title)
{
ID=_ID;
图像=_图像;
Title=_Title;
}
}
公共类数据填充
{
公共列表漫画=新列表();
公共网页漫画()
{
添加(新数据源(1,“/Assets/Comic1.jpg”,“Jokur和Botmon”);
添加(新数据源(2,“/Assets/Comic2.jpg”,“Jokur和Botmon2”);
}
}
我想要实现的是:

  • 不喜欢/喜欢按钮在ListView中绑定的每个漫画中都起作用,因此它将更改漫画的不喜欢/喜欢比率的值
  • 我所尝试的:

  • 第一个答案是杰瑞·尼克松的教程(它只适用于文本框而不适用于文本块,我不明白为什么)

  • 我仍在尝试理解如何使用Command属性,这非常复杂。 我仍然在寻找使用ICommands的教程,如果你有一个非常有用的教程视频的话


  • 我是WPF编程新手,提前谢谢。

    不要单击
    而是使用
    命令
    属性将其绑定到视图模型。您是否在此应用程序中使用
    DataContext
    ?如果是,则共享一些相同的代码。
    private void blike_Click(object sender, RoutedEventArgs e)
    {
        int rate = Convert.ToInt16(tblrate.Text);
        rate += 1;
        tblrate.Text = Convert.ToString(rate);
    }
    
    private void bdislike_Click(object sender, RoutedEventArgs e)
    {
        int rate = Convert.ToInt16(tblrate.Text);
        rate -= 1;
        tblrate.Text = Convert.ToString(rate);
    }
    
    public class DataSource
        {
            public int ID { get; set; }
            public string Title { get; set; }
            public string Image { get; set; }
            public DataSource(int _ID, string _Image, string _Title)
            {
                ID = _ID;
                Image = _Image;
                Title = _Title;
            }
        }
    
    public class DataFill
        {
            public List<DataSource> Comics= new List<DataSource>();
            public void MainPageComics()
            {
                Comics.Add(new DataSource(1, "/Assets/Comic1.jpg", "Jokur and Botmon"));
                Comics.Add(new DataSource(2, "/Assets/Comic2.jpg", "Jokur and Botmon2"));
            }
    }