问题描述
我正在使用 ContentTemplate 在 WPF 中创建一个选项卡控件。
<TabControl x:Name="tabOrders">
<TabControl.ContentTemplate>
<DataTemplate x:Name="TabItemTemplate">
<ScrollViewer Height="550" VerticalScrollBarVisibility="Auto">
<StackPanel Orientation="Vertical" Margin="0,10,100">
<StackPanel Orientation="Horizontal" Margin="10,20" HorizontalAlignment="Stretch">
<Button Width="100" Margin="0,20,0" x:Name="btnUpload" Click="btnUpload_Click">Upload</Button>
<ComboBox Width="250" Margin="0,0" x:Name="ddlPaperType" DataContext="{Binding paper_id }"></ComboBox>
<Button Width="100" Margin="0,0" x:Name="btnApplyAll" Click="btnApplyAll_Click">Apply All</Button>
</StackPanel>
<ListView x:Name="lvImages" HorizontalAlignment="Stretch" VerticalAlignment="Top">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="5" HorizontalAlignment="Stretch"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Image Height="100" Width="100" Source="{Binding FileName}" HorizontalAlignment="Stretch" VerticalAlignment="Top" Stretch="UniformToFill" />
<ComboBox x:Name="cmbPaperType" ItemsSource="{Binding paper_id}" Margin="5" DisplayMemberPath="name" SelectedValuePath="_id" ></ComboBox>
<!--<TextBlock Text="{Binding Title}" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" />-->
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
</ScrollViewer>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
使用以下代码创建标签项:
tabOrders.DataContext = DataContext;
List<TabContext> context = (List<TabContext>)DataContext;
foreach (TabContext tabContext in context)
{
TabItem tabItem = new TabItem();
tabItem.DataContext = tabContext;
tabItem.Header = tabContext.item.order_number + " - " + tabContext.item.ProductArr.product_name ;
tabOrders.Items.Add(tabItem);
}
这里的问题是两个选项卡都显示相同的内容。我是 WPF 的新手,不知道我错过了什么。请指教。
更新:12 月 28 日
单击按钮时,我运行以下将数据绑定到列表视图的代码:
private void btnUpload_Click(object sender,RoutedEventArgs e)
{
var btn = (Button)sender;
var parentPanel = (StackPanel)btn.Parent;
var cmb = parentPanel.FindChild<ComboBox>("ddlPaperType");
TabItem currentTab = (TabItem)tabOrders.Items[tabOrders.SelectedIndex];
var context = (TabContext)currentTab.DataContext;
cmb.ItemsSource = context.paper_id;
cmb.DisplayMemberPath = "name";
cmb.SelectedValuePath = "_id";
var order_number = context.item.order_number;
var brand_id = context.item.brand_id._id;
var parent = btn.Parent;
OpenFileDialog ofd = new OpenFileDialog();
ofd.Multiselect = true;
List<UploadFile> images = new List<UploadFile>();
ofd.Filter = "Image Files (*.bmp,*.jpg,*.jpeg,*.tif,*.tiff)|*.bmp; *.jpg; *.jpeg; *.tif; *.tiff|Photoshp Files (*.psd)|*.psd|Text Files (*.txt)|*.txt";
if (ofd.ShowDialog() == true)
{
foreach (var item in ofd.FileNames)
{
images.Add(new UploadFile
{
FileName = item,order_number = order_number,brand_id = brand_id,paper_id = context.paper_id
});
}
}
var lv = parent.GetParentObject().FindChild<ListView>("lvImages");
lv.ItemsSource = images;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)