এক্সএএমএল-তে আমি কীভাবে একটি ডাব্লুপিএফ কম্বো বাক্সের বিস্তৃত উপাদানটির প্রস্থ রাখতে পারি?


104

কোডে এটি কীভাবে করা যায় আমি জানি তবে এটি কি এক্সএএমএল-এ করা যায়?

উইন্ডো 1.xaml:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <ComboBox Name="ComboBox1" HorizontalAlignment="Left" VerticalAlignment="Top">
            <ComboBoxItem>ComboBoxItem1</ComboBoxItem>
            <ComboBoxItem>ComboBoxItem2</ComboBoxItem>
        </ComboBox>
    </Grid>
</Window>

উইন্ডো 1.xaml.cs:

using System.Windows;
using System.Windows.Controls;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            double width = 0;
            foreach (ComboBoxItem item in ComboBox1.Items)
            {
                item.Measure(new Size(
                    double.PositiveInfinity, double.PositiveInfinity));
                if (item.DesiredSize.Width > width)
                    width = item.DesiredSize.Width;
            }
            ComboBox1.Measure(new Size(
                double.PositiveInfinity, double.PositiveInfinity));
            ComboBox1.Width = ComboBox1.DesiredSize.Width + width;
        }
    }
}

অনুরূপ লাইনে অন্য পোস্ট স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 826985/… দেখুন 69 দয়া করে আপনার প্রশ্নের উত্তর যদি এটি আপনার প্রশ্নের উত্তর দেয় তবে "উত্তর" হিসাবে চিহ্নিত করুন।
সুদীপ

আমি কোডেও এই পদ্ধতির চেষ্টা করেছি কিন্তু দেখেছি পরিমাপ ভিস্তা এবং এক্সপির মধ্যে পৃথক হতে পারে। ভিস্টায়, ডিজায়ারসাইজে সাধারণত ড্রপ ডাউন তীরের আকারটি অন্তর্ভুক্ত থাকে তবে এক্সপিতে প্রায়শই প্রস্থে ড্রপ-ডাউন তীর অন্তর্ভুক্ত থাকে না। এখন, আমার ফলাফলগুলি হতে পারে কারণ প্যারেন্ট উইন্ডোটি দৃশ্যমান হওয়ার আগে আমি পরিমাপটি করার চেষ্টা করছি। পরিমাপের পূর্বে একটি আপডেটলয়েট () যুক্ত করা সাহায্য করতে পারে তবে অ্যাপ্লিকেশনটিতে অন্যান্য পার্শ্ব প্রতিক্রিয়া তৈরি করতে পারে। আপনি যদি ভাগ করতে ইচ্ছুক হন তবে আপনি যে সমাধানটি নিয়ে এসেছেন তা দেখতে আগ্রহী।
jschroedl

আপনি কীভাবে আপনার সমস্যা সমাধান করেছেন?
অ্যান্ড্রু কালাশনিকভ

উত্তর:


31

এটি এক্সএএমএল-এ নাও থাকতে পারে:

  • একটি গোপন নিয়ন্ত্রণ তৈরি করা হচ্ছে (অ্যালান হানফোর্ডের উত্তর)
  • কন্ট্রোলটিম্পলেটটি মারাত্মকভাবে পরিবর্তন করা হচ্ছে। এমনকি এই ক্ষেত্রেও আইটেমপ্রসেন্টারের একটি লুকানো সংস্করণ তৈরি করার প্রয়োজন হতে পারে।

এর কারণ হ'ল আমি যে ডিফল্ট কম্বোবক্স কন্ট্রোলটিপ্লেটস (অ্যারো, লুনা ইত্যাদি) জুড়ে এসেছি সেগুলি পপআপে আইটেমপ্রসেন্টার সমস্ত নীড়। এর অর্থ হ'ল এই আইটেমগুলির লেআউটটি প্রকৃতপক্ষে দৃশ্যমান না হওয়া অবধি স্থগিত।

এটি পরীক্ষা করার একটি সহজ উপায় হ'ল বহিরাগততম ধারকটির মিনিউইথকে আবদ্ধ করার জন্য এটি ডিফল্ট কন্ট্রোলটিম্পলেটটি সংশোধন করা (এটি অ্যারো এবং লুনার উভয়ের জন্য একটি গ্রিড) পিক্সনপপআপের প্রকৃতপক্ষে to আপনি যখন ড্রপ বোতামটি ক্লিক করেন তবে কম্বোবক্স স্বয়ংক্রিয়ভাবে এর প্রস্থের সাথে এর প্রস্থটি সিঙ্ক্রোনাইজ করতে সক্ষম হবেন তবে এর আগে নয়।

সুতরাং আপনি যদি না লেআউট সিস্টেমে একটি পরিমাপ অপারেশন জোর করতে পারেন (যা আপনি করতে না পারেন একটি দ্বিতীয় নিয়ন্ত্রণ যুক্ত করে পারেন ), আমি মনে করি না এটি করা সম্ভব।

সর্বদা হিসাবে, আমি একটি সংক্ষিপ্ত, মার্জিত সমাধানের জন্য উন্মুক্ত - তবে এই ক্ষেত্রে কোড-ব্যাকড বা ডুয়াল-নিয়ন্ত্রণ / কন্ট্রোলটেম্পলেট হ্যাকগুলি কেবলমাত্র আমিই দেখেছি solutions


57

আপনি সরাসরি Xaml এ এটি করতে পারবেন না তবে আপনি এটি সংযুক্ত আচরণটি ব্যবহার করতে পারেন। (প্রস্থ ডিজাইনারের মধ্যে দৃশ্যমান হবে)

<ComboBox behaviors:ComboBoxWidthFromItemsBehavior.ComboBoxWidthFromItems="True">
    <ComboBoxItem Content="Short"/>
    <ComboBoxItem Content="Medium Long"/>
    <ComboBoxItem Content="Min"/>
</ComboBox>

সংযুক্ত আচরণের কম্বোবক্সউইথথ্রমে আইটেমস প্রোপার্টি

public static class ComboBoxWidthFromItemsBehavior
{
    public static readonly DependencyProperty ComboBoxWidthFromItemsProperty =
        DependencyProperty.RegisterAttached
        (
            "ComboBoxWidthFromItems",
            typeof(bool),
            typeof(ComboBoxWidthFromItemsBehavior),
            new UIPropertyMetadata(false, OnComboBoxWidthFromItemsPropertyChanged)
        );
    public static bool GetComboBoxWidthFromItems(DependencyObject obj)
    {
        return (bool)obj.GetValue(ComboBoxWidthFromItemsProperty);
    }
    public static void SetComboBoxWidthFromItems(DependencyObject obj, bool value)
    {
        obj.SetValue(ComboBoxWidthFromItemsProperty, value);
    }
    private static void OnComboBoxWidthFromItemsPropertyChanged(DependencyObject dpo,
                                                                DependencyPropertyChangedEventArgs e)
    {
        ComboBox comboBox = dpo as ComboBox;
        if (comboBox != null)
        {
            if ((bool)e.NewValue == true)
            {
                comboBox.Loaded += OnComboBoxLoaded;
            }
            else
            {
                comboBox.Loaded -= OnComboBoxLoaded;
            }
        }
    }
    private static void OnComboBoxLoaded(object sender, RoutedEventArgs e)
    {
        ComboBox comboBox = sender as ComboBox;
        Action action = () => { comboBox.SetWidthFromItems(); };
        comboBox.Dispatcher.BeginInvoke(action, DispatcherPriority.ContextIdle);
    }
}

এটি যা করে তা হ'ল এটি কম্বোবক্সের জন্য এক্সটেনশন পদ্ধতিকে কল করে সেটউইথথ্রোমআইটেমস যা (অদৃশ্যভাবে) নিজেই প্রসারিত হয় এবং ধসে পড়ে এবং তারপরে উত্পন্ন কম্বোবক্সআইটেমগুলির ভিত্তিতে প্রস্থের গণনা করে। (আইই এক্সপ্যান্ডক্ল্যাপসপ্রাইভাইডারের জন্য ইউআইএআউটোমেশনপ্রভাইডার.ডিলের একটি রেফারেন্স প্রয়োজন)

তারপরে এক্সটেনশন পদ্ধতি সেটউইথথ্রোমআইটেমগুলি

public static class ComboBoxExtensionMethods
{
    public static void SetWidthFromItems(this ComboBox comboBox)
    {
        double comboBoxWidth = 19;// comboBox.DesiredSize.Width;

        // Create the peer and provider to expand the comboBox in code behind. 
        ComboBoxAutomationPeer peer = new ComboBoxAutomationPeer(comboBox);
        IExpandCollapseProvider provider = (IExpandCollapseProvider)peer.GetPattern(PatternInterface.ExpandCollapse);
        EventHandler eventHandler = null;
        eventHandler = new EventHandler(delegate
        {
            if (comboBox.IsDropDownOpen &&
                comboBox.ItemContainerGenerator.Status == GeneratorStatus.ContainersGenerated)
            {
                double width = 0;
                foreach (var item in comboBox.Items)
                {
                    ComboBoxItem comboBoxItem = comboBox.ItemContainerGenerator.ContainerFromItem(item) as ComboBoxItem;
                    comboBoxItem.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
                    if (comboBoxItem.DesiredSize.Width > width)
                    {
                        width = comboBoxItem.DesiredSize.Width;
                    }
                }
                comboBox.Width = comboBoxWidth + width;
                // Remove the event handler. 
                comboBox.ItemContainerGenerator.StatusChanged -= eventHandler;
                comboBox.DropDownOpened -= eventHandler;
                provider.Collapse();
            }
        });
        comboBox.ItemContainerGenerator.StatusChanged += eventHandler;
        comboBox.DropDownOpened += eventHandler;
        // Expand the comboBox to generate all its ComboBoxItem's. 
        provider.Expand();
    }
}

এই এক্সটেনশন পদ্ধতিটি কল করার ক্ষমতাও সরবরাহ করে

comboBox.SetWidthFromItems();

পিছনে কোডে (উদাঃ কম্বোবক্স.লম্বড ইভেন্টে)


+1, দুর্দান্ত সমাধান! আমি একই লাইন ধরে কিছু করার চেষ্টা করছিলাম, তবে শেষ পর্যন্ত আমি আপনার প্রয়োগটি ব্যবহার করেছি (কয়েকটি সংশোধন করে)
টমাস লেভসেক

4
আশ্চর্যজনক ধন্যবাদ এটি গ্রহণযোগ্য উত্তর হিসাবে চিহ্নিত করা উচিত। দেখে মনে হচ্ছে সংযুক্ত বৈশিষ্ট্যগুলি সর্বদা সর্বদা উপায় হয় :)
Ignacio Soler Garcia

যতদূর আমি উদ্বিগ্ন সর্বোত্তম সমাধান। আমি ইন্টারনেটের চারপাশে একাধিক কৌশল চেষ্টা করেছি এবং আপনার সমাধানটি আমি খুঁজে পেয়েছি সেরা এবং সহজ। +1
প্যারাসেবল

7
মনে রাখবেন যে যদি আপনার একই উইন্ডোতে একাধিক কম্বোবক্স থাকে ( উইন্ডোটি কম্বোবক্সগুলি তৈরি করে এবং কোড-পেছনের সাথে তাদের সামগ্রীগুলি তৈরি করে আমার সাথে এটি ঘটে ), পপআপগুলি এক সেকেন্ডের জন্য দৃশ্যমান হতে পারে। আমার ধারণা এটি কারণ এটি যে কোনও "ক্লোজ পপআপ" বলার আগে একাধিক "ওপেন পপআপ" বার্তা পোস্ট করা হয়। এর সমাধান হ'ল SetWidthFromItemsএকটি ক্রিয়া / প্রতিনিধি এবং একটি নিষ্ক্রিয় অগ্রাধিকার (লোড ইভেন্টে যেমন করা হয়েছে) সহ একটি বিগইনভোক ব্যবহার করে পুরো পদ্ধতিটিকে অবিচ্ছিন্ন করে তোলা। এইভাবে, মেসেজ পাম্পটি খালি না থাকাকালীন কোনও ব্যবস্থা নেওয়া হবে না এবং এইভাবে কোনও বার্তা ইন্টারলিভিংয়ের ঘটনা ঘটবে না
প্যারেসবাল

4
যাদু নম্বর: double comboBoxWidth = 19;আপনার কোড সম্পর্কিত SystemParameters.VerticalScrollBarWidth?
জেফ Beaulac

10

হ্যাঁ, এটাকে খানিকটা বাজে।

আমি অতীতে যা করেছি তা হ'ল কন্ট্রোলটেম্পলেটটি একটি লুকানো তালিকার বাক্সে যুক্ত করা (এটির আইটেমসটেন্টার্পেনেলটি একটি গ্রিডে সেট করা) প্রতিটি আইটেম একই সাথে প্রদর্শিত হয় তবে তাদের দৃশ্যমানতা গোপনে সেট করা থাকে।

আমি এমন আরও ভাল ধারণা শুনে খুশী হব যেগুলি ভয়াবহ কোড-ব্যাকডের উপর নির্ভর করে না বা আপনার দৃষ্টিভঙ্গি বুঝতে পেরেছে যে ভিজ্যুয়ালগুলিকে সমর্থন করার জন্য এটি আলাদা নিয়ন্ত্রণ ব্যবহার করা প্রয়োজন (ইয়াক!)!


4
এই পদ্ধতির কি কম্বোটি যথেষ্ট প্রশস্ত করা হবে যাতে নির্বাচিত আইটেমটি যখন প্রস্থের আইটেমটি পুরোপুরি দৃশ্যমান হয়? এখানেই আমি সমস্যাগুলি দেখেছি।
jschroedl

8

উপরের অন্যান্য উত্তরের উপর ভিত্তি করে, এখানে আমার সংস্করণ:

<Grid HorizontalAlignment="Left">
    <ItemsControl ItemsSource="{Binding EnumValues}" Height="0" Margin="15,0"/>
    <ComboBox ItemsSource="{Binding EnumValues}" />
</Grid>

HorizontalAlignment = "বাম" সমন্বিত নিয়ন্ত্রণের সম্পূর্ণ প্রস্থ ব্যবহার করে নিয়ন্ত্রণগুলি থামায়। উচ্চতা = "0" আইটেম নিয়ন্ত্রণ নিয়ন্ত্রণ করে।
মার্জিন = "15,0" কম্বো-বাক্স আইটেমগুলির আশেপাশে অতিরিক্ত ক্রোমের অনুমতি দেয় (ক্রোম অজিনস্টিক আমি ভয় করি না)।


4

পুরানো উইনফোর্সস অটোসাইজমোড = গ্রোওনলির অনুরূপ কম্বো বাক্সটি এটির বৃহত্তম আকারের চেয়ে কম সংকুচিত করতে না পারার জন্য আমি এই সমস্যার "যথেষ্ট যথেষ্ট" সমাধান দিয়ে শেষ করেছি।

আমি যেভাবে এটি করেছি তা একটি কাস্টম মান রূপান্তরকারী সহ ছিল:

public class GrowConverter : IValueConverter
{
    public double Minimum
    {
        get;
        set;
    }

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var dvalue = (double)value;
        if (dvalue > Minimum)
            Minimum = dvalue;
        else if (dvalue < Minimum)
            dvalue = Minimum;
        return dvalue;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotSupportedException();
    }
}

তারপরে আমি এক্সএএমএল-তে কম্বো বাক্সটি কনফিগার করেছিলাম:

 <Whatever>
        <Whatever.Resources>
            <my:GrowConverter x:Key="grow" />
        </Whatever.Resources>
        ...
        <ComboBox MinWidth="{Binding ActualWidth,RelativeSource={RelativeSource Self},Converter={StaticResource grow}}" />
    </Whatever>

নোট করুন যে এর সাথে আপনার প্রতিটি কম্বো বাক্সের জন্য গ্রোভনভারটারের পৃথক উদাহরণ প্রয়োজন, যদি না আপনি গ্রিডের শেয়ারডাইজস্কোপ বৈশিষ্ট্যের অনুরূপ, তাদের একটি সেট একসাথে আকারের করতে চান।


4
দীর্ঘতম এন্ট্রি নির্বাচন করার পরে দুর্দান্ত, তবে কেবল "স্থিতিশীল"।
primfaktor

4
সঠিক। আমি উইনফর্মগুলিতে এটি সম্পর্কে কিছু করেছি, যেখানে আমি কম্বো বাক্সের সমস্ত স্ট্রিং পরিমাপ করতে পাঠ্য API গুলি ব্যবহার করতাম এবং এর জন্য ন্যূনতম প্রস্থটি নির্ধারণ করতাম। ডাব্লুপিএফ-তে এটি করা যথেষ্ট বেশি কঠিন, বিশেষত যখন আপনার আইটেমগুলি স্ট্রিং হয় না এবং / অথবা কোনও বাইন্ডিং থেকে আসে।
চিতা

3

মালেকের উত্তরের অনুসরণ: আমি বাস্তবায়নটি এত পছন্দ করেছিলাম, আমি এর জন্য একটি প্রকৃত আচরণ লিখেছি। স্পষ্টতই আপনার মিশ্রণ এসডিকে দরকার হবে যাতে আপনি সিস্টেম.বাইন্ডস.ইন্টেরাকটিভিটি উল্লেখ করতে পারেন।

এক্সএএমএল:

    <ComboBox ItemsSource="{Binding ListOfStuff}">
        <i:Interaction.Behaviors>
            <local:ComboBoxWidthBehavior />
        </i:Interaction.Behaviors>
    </ComboBox>

কোড:

using System;
using System.Windows;
using System.Windows.Automation.Peers;
using System.Windows.Automation.Provider;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Interactivity;

namespace MyLibrary
{
    public class ComboBoxWidthBehavior : Behavior<ComboBox>
    {
        protected override void OnAttached()
        {
            base.OnAttached();
            AssociatedObject.Loaded += OnLoaded;
        }

        protected override void OnDetaching()
        {
            base.OnDetaching();
            AssociatedObject.Loaded -= OnLoaded;
        }

        private void OnLoaded(object sender, RoutedEventArgs e)
        {
            var desiredWidth = AssociatedObject.DesiredSize.Width;

            // Create the peer and provider to expand the comboBox in code behind. 
            var peer = new ComboBoxAutomationPeer(AssociatedObject);
            var provider = peer.GetPattern(PatternInterface.ExpandCollapse) as IExpandCollapseProvider;
            if (provider == null)
                return;

            EventHandler[] handler = {null};    // array usage prevents access to modified closure
            handler[0] = new EventHandler(delegate
            {
                if (!AssociatedObject.IsDropDownOpen || AssociatedObject.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated)
                    return;

                double largestWidth = 0;
                foreach (var item in AssociatedObject.Items)
                {
                    var comboBoxItem = AssociatedObject.ItemContainerGenerator.ContainerFromItem(item) as ComboBoxItem;
                    if (comboBoxItem == null)
                        continue;

                    comboBoxItem.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
                    if (comboBoxItem.DesiredSize.Width > largestWidth)
                        largestWidth = comboBoxItem.DesiredSize.Width;
                }

                AssociatedObject.Width = desiredWidth + largestWidth;

                // Remove the event handler.
                AssociatedObject.ItemContainerGenerator.StatusChanged -= handler[0];
                AssociatedObject.DropDownOpened -= handler[0];
                provider.Collapse();
            });

            AssociatedObject.ItemContainerGenerator.StatusChanged += handler[0];
            AssociatedObject.DropDownOpened += handler[0];

            // Expand the comboBox to generate all its ComboBoxItem's. 
            provider.Expand();
        }
    }
}

এটি কাজ করে না, যখন কম্বোবক্স সক্ষম থাকে না। provider.Expand()একটি ছোঁড়ার ElementNotEnabledException। পিতা-মাতার অক্ষম হওয়ার কারণে যখন কম্বোবক্স সক্ষম নয়, তখন পরিমাপ শেষ না হওয়া পর্যন্ত অস্থায়ীভাবে কম্বোবক্স সক্ষম করাও সম্ভব নয়।
ফ্লাইংফক্স

1

ড্রপবক্সের পিছনে একই সামগ্রীযুক্ত একটি তালিকা বাক্স রাখুন। তারপরে এই জাতীয় কিছু বাঁধাই করে সঠিক উচ্চতা প্রয়োগ করুন:

<Grid>
       <ListBox x:Name="listBox" Height="{Binding ElementName=dropBox, Path=DesiredSize.Height}" /> 
        <ComboBox x:Name="dropBox" />
</Grid>

1

আমার ক্ষেত্রে অনেক সহজ উপায়টি কৌশলটি মনে হয়েছিল, আমি কম্বোবক্স মোড়ানোর জন্য কেবল একটি অতিরিক্ত স্ট্যাকপ্যানেল ব্যবহার করেছি।

<StackPanel Grid.Row="1" Orientation="Horizontal">
    <ComboBox ItemsSource="{Binding ExecutionTimesModeList}" Width="Auto"
        SelectedValuePath="Item" DisplayMemberPath="FriendlyName"
        SelectedValue="{Binding Model.SelectedExecutionTimesMode}" />    
</StackPanel>

(ভিজ্যুয়াল স্টুডিও ২০০৮ এ কাজ করেছেন)


1

একটি বিকল্প সমাধান শীর্ষ উত্তর হয় পপআপ পরিমাপ বরং সব আইটেম পরিমাপ চেয়ে নিজেই। কিছুটা সহজ SetWidthFromItems()বাস্তবায়ন দেওয়া:

private static void SetWidthFromItems(this ComboBox comboBox)
{
    if (comboBox.Template.FindName("PART_Popup", comboBox) is Popup popup 
        && popup.Child is FrameworkElement popupContent)
    {
        popupContent.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
        // suggested in comments, original answer has a static value 19.0
        var emptySize = SystemParameters.VerticalScrollBarWidth + comboBox.Padding.Left + comboBox.Padding.Right;
        comboBox.Width = emptySize + popupContent.DesiredSize.Width;
    }
}

প্রতিবন্ধীদের ComboBoxজন্যও কাজ করে ।


0

আমি নিজেই উত্তরটির সন্ধান করছিলাম, যখন আমি UpdateLayout()প্রতিটি পদ্ধতিটি পেয়েছি UIElement

এটা এখন খুব সহজ, ধন্যবাদ!

ComboBox1.Updatelayout();আপনি সেট বা পরিবর্তন করার পরে কেবল কল করুন ItemSource


0

অনুশীলনে আলুন হারফোর্ডের পদ্ধতির:

<Grid>

  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"/>
    <ColumnDefinition Width="*"/>
  </Grid.ColumnDefinitions>

  <!-- hidden listbox that has all the items in one grid -->
  <ListBox ItemsSource="{Binding Items, ElementName=uiComboBox, Mode=OneWay}" Height="10" VerticalAlignment="Top" Visibility="Hidden">
    <ListBox.ItemsPanel><ItemsPanelTemplate><Grid/></ItemsPanelTemplate></ListBox.ItemsPanel>
  </ListBox>

  <ComboBox VerticalAlignment="Top" SelectedIndex="0" x:Name="uiComboBox">
    <ComboBoxItem>foo</ComboBoxItem>
    <ComboBoxItem>bar</ComboBoxItem>
    <ComboBoxItem>fiuafiouhoiruhslkfhalsjfhalhflasdkf</ComboBoxItem>
  </ComboBox>

</Grid>

0

এটি প্রস্থকে আরও বিস্তৃত উপাদানে রাখে তবে কেবল একবার কম্বো বাক্স খোলার পরে।

<ComboBox ItemsSource="{Binding ComboBoxItems}" Grid.IsSharedSizeScope="True" HorizontalAlignment="Left">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="sharedSizeGroup"/>
                </Grid.ColumnDefinitions>
                <TextBlock Text="{Binding}"/>
            </Grid>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.