xaml 相关问题

可扩展应用程序标记语言(XAML)是一种基于XML的声明式语言,用于在各种框架中初始化结构化值和对象。当问题是关于具有特定框架的XAML的使用时,还应该提供框架的标签,例如, [wpf](Windows Presentation Foundation),[silverlight],[windows-phone],[windows-store-apps](Windows 8商店应用),[win-universal-app],[xamarin.forms]或[工作流程 - 基础]

重新排序 XAML 代码?

示例我得到了这一行: 注意参数如何无序 示例我得到了这一行: 注意参数如何无序 <Button HorizontalAlignment="Center" Margin="200,150,0,0" Width="189" Content="Boo" Style="{DynamicResource btnGrayDownWIthcon}" IsDefault="True" IsCancel="False" Background="{DynamicResource ContractApprovedGreen}" Height="53" VerticalAlignment="Center" Name ="btnPoo" /> 一片混乱 我希望是这样: <Button Name ="btnPoo" Content="Boo" Background="{DynamicResource ContractApprovedGreen}" Style="{DynamicResource btnGrayDownWIthcon}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="200,150,0,0" Width="189" Height="53" IsDefault="True" IsCancel="False" /> 是否有任何自动工具可以按优先级和组对xaml参数重新排序? 是的,有一个名为 XAML Markup Styler 的 Visual Studio 扩展,您可以从 https://github.com/Xavalon/XamlStyler 免费下载和使用它。我和我的团队已经使用它几个月了,效果很好。它也可以对组/优先级进行重新排序。 :)

回答 1 投票 0

.NET MAUI 无法正常使用 XAML 还是有限制?

我尝试使用 .NET MAUI 在 Visual Studio 中制作一个简单的应用程序。我搜索了添加文本并更改其属性的最简单方法,并且发现了文本框和文本块,但是当我想要...

回答 1 投票 0

如何使用EntityFrameworkCore的实体配置属性绑定?

当我绑定 AnotherEntity 的名称时,我的 WPF (netcore3.1-windows) EFCore 5 应用程序中没有初始数据。 数据最初加载在同一个应用程序中,但使用 WPF (net40) EFCore 6 应用程序...

回答 1 投票 0

如何配置GridViewColumn到List的属性绑定<EntityFrameworkCore's Entity>?

当我绑定 AnotherEntity 的名称时,我的 WPF (netcore3.1-windows) EFCore 5 应用程序中没有初始数据。 数据最初加载在同一个应用程序中,但使用 WPF (net40) EFCore 6 应用程序...

回答 1 投票 0

创建一个从 C# 中的 WPF 控件派生的自定义 <Page> 类?

我之前一直在我的WPF应用程序中使用System.Windows.Controls.Page类。 现在需要创建我自己的类“CustomPage”,派生自“System.Windows.Controls.Page&...

回答 1 投票 0

.NET MAUI 应用程序解决方案:错误(活动)APT2000 预期引用但得到(原始字符串)#000000

我在构建 .NET MAUI 应用程序解决方案时遇到问题。 当我构建解决方案时(在 Visual Studio 中),我收到以下错误消息: res/values/values.xml(6):错误 APT2000:预期引用...

回答 1 投票 0

如何在WinUI 3中设置Flyout宽度和高度

我想创建一个宽度为800的Flyout,与TextBox相同。然后将弹出控件附加到文本框。由于我无法直接设置 Flyout 的宽度(没有...

回答 1 投票 0

如何在WinUI3中设置Flyout宽度和高度

我想创建一个宽度为800的Flyout,与TextBox相同。然后将弹出控件附加到文本框。由于我无法直接设置 Flyout 的宽度(没有...

回答 1 投票 0

防止 TextBox 在 WPF 中水平扩展

我在 App.xaml 中定义了以下样式 <Setter Property="VerticalScrollBarVisibility" Value="Auto" /> ...</desc> <question vote="13"> <p>我在 App.xaml 中定义了以下样式</p> <pre><code>&lt;Style x:Key=&#34;textBoxMultiline&#34; TargetType=&#34;{x:Type TextBox}&#34; &gt; &lt;Setter Property=&#34;VerticalScrollBarVisibility&#34; Value=&#34;Auto&#34; /&gt; &lt;Setter Property=&#34;HorizontalScrollBarVisibility&#34; Value=&#34;Hidden&#34; /&gt; &lt;Setter Property=&#34;MinHeight&#34; Value=&#34;50&#34; /&gt; &lt;Setter Property=&#34;TextWrapping&#34; Value=&#34;Wrap&#34; /&gt; &lt;/Style&gt; </code></pre> <p>在整个解决方案中,我们在每个需要简短文本的文本框上使用它。</p> <pre><code>&lt;TextBox x:Name=&#34;textBoxDescription&#34; Grid.Row=&#34;2&#34; Grid.Column=&#34;1&#34; Style=&#34;{DynamicResource textBoxMultiline}&#34; /&gt; </code></pre> <p>一切都很好,但随后客户抱怨某些字段被合并在分辨率较低的旧显示器上,因此我在较高的视觉树节点之一上放置了<pre><code>ScrollViewer</code></pre>以防止合并。</p> <pre><code>&lt;ScrollViewer Height=&#34;Auto&#34; VerticalScrollBarVisibility=&#34;Auto&#34; HorizontalScrollBarVisibility=&#34;Auto&#34;&gt; ... &lt;/ScrollViewer&gt; </code></pre> <p>奇怪的是,具有上述样式的 <pre><code>TextBox</code></pre> 开始向右扩展,而不是环绕文本。</p> <p>有没有办法在不删除<pre><code>ScrollViewer</code></pre>的情况下防止这种情况? </p> </question> <answer tick="false" vote="11"> <p>如果您不想对宽度进行硬编码,那么您可以使用元素绑定父项的宽度。</p> <p>这里我将 TextBox MaxWidth 与 ScrollViewer 实际宽度绑定。您还必须确保 ColumnDefinition 宽度应设置为“*”而不是“Auto”。如果将其设置为“自动”,它将忽略 ScrollViewer 宽度并继续扩展 ScrollViewer 和 TextBox 的宽度。 <em><strong>我认为你属于这种情况</strong></em>...</p> <pre><code>&lt;Grid&gt; &lt;Grid.ColumnDefinitions&gt; &lt;ColumnDefinition Width=&#34;*&#34;&gt;&lt;/ColumnDefinition&gt; &lt;ColumnDefinition Width=&#34;*&#34;&gt;&lt;/ColumnDefinition&gt; &lt;/Grid.ColumnDefinitions&gt; &lt;ScrollViewer HorizontalScrollBarVisibility=&#34;Auto&#34; Name=&#34;scv&#34;&gt; &lt;TextBox Height=&#34;30&#34; TextWrapping=&#34;Wrap&#34; MaxWidth=&#34;{Binding ElementName=scv, Path=ActualWidth}&#34;&gt;&lt;/TextBox&gt; &lt;/ScrollViewer&gt; &lt;/Grid&gt; </code></pre> </answer> <answer tick="true" vote="9"> <p>您必须为<pre><code>MaxWidth</code></pre>定义一个<pre><code>TextBox</code></pre>,否则没有限制,因为<pre><code>ScrollViewer</code></pre>。</p> </answer> <answer tick="false" vote="6"> <p>@bathineni 提供的解决方案帮助我解决了我的问题。这对我有用:</p> <pre><code>&lt;Grid &gt; &lt;Grid.ColumnDefinitions&gt; &lt;ColumnDefinition Width=&#34;50&#34;/&gt; &lt;ColumnDefinition Width=&#34;*&#34;/&gt; &lt;/Grid.ColumnDefinitions&gt; &lt;Button Grid.Column=&#34;0&#34; Width=&#34;30&#34; Height=&#34;23&#34; Margin=&#34;10,5&#34; Content=&#34;...&#34;/&gt; &lt;ScrollViewer Grid.Column=&#34;1&#34; HorizontalScrollBarVisibility=&#34;Disabled&#34; verticalScrollBarVisibility=&#34;Disabled&#34; Name=&#34;scv&#34;&gt; &lt;TextBox Height=&#34;25&#34; Text=&#34;Insert here long text&#34; MaxWidth=&#34;{Binding ElementName=scv, Path=ActualWidth}&#34; HorizontalAlignment=&#34;Stretch&#34; /&gt; &lt;/ScrollViewer&gt; &lt;/Grid&gt; </code></pre> </answer> <answer tick="false" vote="1"> <p>第一个解决方案是使用数据绑定在 XAML 中实现的。我建议你不要单独绑定控件。 XAML 解决方案是通过将具有所需 ActualWidth 和 ActualHeight 属性的控件绑定到文本框 MaxHeight 和 MaxWidth 属性来实现的。</p> <pre><code>&lt;TextBlock x:Name=&#34;PasswordText&#34; Margin=&#34;0,0,0,20&#34; FontFamily=&#34;Bahnschrift SemiBold Condensed&#34; Text=&#34;PASSWORD&#34; FontSize=&#34;20&#34;&gt; &lt;TextBox x:Name=&#34;PasswordTextBox&#34; MaxWidth=&#34;{Binding ElementName=PasswordText, Path=ActualWidth}&#34; MaxHeight=&#34;{Binding ElementName=PasswordText, Path=ActualHeight}&#34;&gt; </code></pre> <p>下一个解决方案是通过在 XAML 中生成 Loaded 事件,在 C# 代码中创建它,然后在 Loaded 事件中将文本框的 MaxWidth 和 MaxHeight 属性设置为文本框 ActualWidth 和 ActualHeight 属性来实现。</p> <pre><code>// It doesn&#39;t have a problem like in XAML if you pass the textbox its own // ActualWidth and ActualHeight to the MaxWidth and MaxHeight proprieties. private void Log_In_Page_Loaded(object sender, RoutedEventArgs e) { UsernameTextBox.MaxHeight = UsernameTextBox.ActualHeight; UsernameTextBox.MaxWidth = UsernameTextBox.ActualWidth; } </code></pre> <p>选择更适合你设计的一个,但我认为,在我看来,这是解决这个问题最有效、最简单、最稳定、最有效的方法。</p> </answer> <answer tick="false" vote="0"> <p>对我有用。如果你想让滚动条出现在文本框中,你可以添加</p> <pre><code>HorizontalScrollBarVisibility=&#34;Auto&#34; VerticalScrollBarVisibility=&#34;Auto&#34; </code></pre> <p>到文本框 </p> </answer> <answer tick="false" vote="0"> <p>您必须设置 <pre><code>MaxWidth</code></pre><pre> 的 </pre><code>Container Control</code></p> <pre><code>&lt;Grid x:Name=&#34;RootGrid&#34; Margin=&#34;6,6,8,8&#34; Width=&#34;500&#34; MaxWidth=&#34;500&#34;&gt; &lt;ScrollViewer ScrollViewer.HorizontalScrollBarVisibility=&#34;Disabled&#34; ScrollViewer.VerticalScrollBarVisibility=&#34;Auto&#34;&gt; &lt;Grid&gt; &lt;Grid.RowDefinitions&gt; &lt;RowDefinition Height=&#34;Auto&#34;/&gt; &lt;/Grid.RowDefinitions&gt; &lt;GroupBox Name=&#34;contentGroup&#34; Header=&#34;Content&#34; Grid.Row=&#34;0&#34;&gt; &lt;TextBox Name=&#34;content&#34;/&gt; &lt;/GroupBox&gt; &lt;/Grid&gt; &lt;/ScrollViewer&gt; </code></pre> <p></p> </answer> <answer tick="false" vote="0"> <p>当我需要我的<pre><code>TextBox</code></pre>在调整大小时与其自动调整大小的<pre><code>Grid</code></pre>列一起拉伸时,我遇到了这个问题,这意味着<pre><code>MaxWidth</code></pre>不起作用,但仍然需要防止<pre><code>TextBox</code></pre>拉伸及其内容。</p> <p>我最终所做的是将这个事件处理程序链接到<pre><code>SizeChanged</code></pre>:</p> <pre><code>private void TextBox_SizeChanged(object sender, SizeChangedEventArgs e) { TextBox textBox = (TextBox)sender; if (textBox.CanUndo &amp;&amp; e.NewSize.Width &gt; e.PreviousSize.Width) { textBox.Width = e.PreviousSize.Width; } } </code></pre> <p>将文本写入文本框是用户可以撤消的操作,而其他可能导致调整大小的操作(元素的初始绘制、父容器的拉伸等)则无法从文本框中撤消。因此,通过检查 <pre><code>CanUndo</code></pre>,我们可以确定 <pre><code>SizeChanged</code></pre> 是否是由写入文本或其他内容触发的。</p> <p><pre><code>e.NewSize.Width &gt; e.PreviousSize.Width</code></pre> 检查是必要的,因为没有它,<pre><code>SizeChanged</code></pre> 事件将从自身内部无限地调用,因为要恢复拉伸,我们需要 <em>将大小</em> 更改回原始值,这本身就会触发事件。</p> <p>这有点棘手,但我还没有遇到任何问题。</p> </answer> <answer tick="false" vote="0"> <p>我不知道为什么,但我无法让 ScrollViewer 解决方案工作。我需要一个具有固定初始宽度的 TextBox 来实现数字向上/向下控件 - 在此控件中,TextBox 独立于输入而缩小和增长,如果 UI 在您键入时发生变化,这看起来非常烦人。</p> <p>所以,我发现以下使用 2 个文本框的解决方案适合我。第一个文本框是为用户键入输入而显示的文本框,第二个文本框通过依赖属性 (DisplayLength) 和下面进一步显示的转换器进行初始化。</p> <p>将第一个文本框的 MaxWidth 属性绑定到第二个文本框的 Width 属性可以固定大小,以便用户可以键入他们想要的内容,但即使有更多可用的 UI 空间,文本框的显示宽度也不会改变。</p> <pre><code>&lt;TextBox x:Name=&#34;PART_TextBox&#34; Text=&#34;{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value}&#34; Margin=&#34;0,0,1,0&#34; TextAlignment=&#34;Right&#34; AcceptsReturn=&#34;False&#34; SpellCheck.IsEnabled=&#34;False&#34; HorizontalContentAlignment=&#34;Stretch&#34; VerticalContentAlignment=&#34;Center&#34; HorizontalAlignment=&#34;Stretch&#34; VerticalAlignment=&#34;Stretch&#34; MaxWidth=&#34;{Binding ElementName=TBMeasure, Path=ActualWidth}&#34; /&gt; &lt;!-- Hidden measuring textbox ensures reservation of enough UI space according to DisplayLength dependency property --&gt; &lt;TextBox x:Name=&#34;TBMeasure&#34; Text=&#34;{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DisplayLength, Converter={StaticResource ByteToPlaceHolderStringConverter}}&#34; Margin=&#34;0,0,1,0&#34; TextAlignment=&#34;Right&#34; AcceptsReturn=&#34;False&#34; SpellCheck.IsEnabled=&#34;False&#34; HorizontalContentAlignment=&#34;Right&#34; VerticalContentAlignment=&#34;Center&#34; HorizontalAlignment=&#34;Stretch&#34; VerticalAlignment=&#34;Stretch&#34; Visibility=&#34;Hidden&#34;/&gt; // Converter [ValueConversion(typeof(byte), typeof(string))] public sealed class ByteToPlaceHolderStringConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if ((value is byte) == false) return Binding.DoNothing; byte byteVal = (byte)value; string retString = string.Empty; for (int i = 0; i &lt; byteVal; i++) retString = retString + &#34;X&#34;; return retString; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return Binding.DoNothing; } } </code></pre> </answer> </body></html>

回答 0 投票 0

当 Android 12 及更高版本时,启动画面在 .net maui 中不显示全屏

当 Android 12 及更高版本时,启动屏幕在 .NET Maui 中不显示全屏。启动画面像往常一样包含一个徽标和底部的几行文字。问题是图像和...

回答 1 投票 0

XAML 绑定到 ViewModel 上的 CollectionViewSource 属性

我有一个简单的 ViewModel,例如: 公共类MainViewModel { ObservableCollection _projects; 公共 MainViewModel() { // 在这里填写数据库中的_projects...

回答 2 投票 0

为什么 WPF UserControl 的宿主窗口不被视为其逻辑父窗口?

我自己遇到这个问题后,正在阅读 Rohit Vats 对这篇文章的回答,并且想知道为什么 UserControl 的“父”窗口不被视为其逻辑父窗口。他...

回答 1 投票 0

如何在WPF(XAML)中与数据内容和滚动条在同一行添加重复按钮

我想从我的 Web 应用程序到我的 WPF 桌面应用程序重新创建此设计。 在这个设计中,我在侧面有这些 << and >> 重复按钮。 这是我的 WPF 中的图像

回答 1 投票 0

XamlType.GetAliasedProperty 有什么意义

我尝试寻找有关此方法的信息,但我无法理解它的含义和实用性。 MSDN 对此是这么说的:https://msdn.microsoft.com/en-us//library/vs...

回答 1 投票 0

MAUI Toaster 在 Windows 应用程序中单击时会创建应用程序的新实例

我正在 Windows 基础应用程序上使用 .NET MAUI 应用程序,我在其中实现了用于通知的 Toast。但是,我遇到了单击 toast 消息(或 Sna...

回答 1 投票 0

水平布局 .net MAUI 中的条目不占 100% 宽度

我有这个简单的网格,这不是我有垂直堆栈布局然后水平堆栈布局的网格。在此,条目不占用 100% 宽度。我做错了什么。 我有这个简单的网格,这不是我有垂直堆栈布局然后水平堆栈布局的网格。在此,条目不占用 100% 宽度。我做错了什么。 <Grid RowDefinitions="Auto,20,20,Auto" Padding="10" ColumnDefinitions="*,*"> <Label Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Text="8901 PKR" BackgroundColor="Maroon" TextColor="White" VerticalTextAlignment="Center"></Label> <Label Grid.Row="0" Grid.Column="1" Text="5032 PKR" BackgroundColor="Maroon" TextColor="White" VerticalTextAlignment="Center"></Label> <Label Grid.Row="1" Grid.Column="1" Text="5032 PKR" BackgroundColor="Maroon" TextColor="White" VerticalTextAlignment="Center"></Label> <Label Grid.Row="2" Grid.Column="1" Text="5032 PKR" BackgroundColor="Maroon" TextColor="White" VerticalTextAlignment="Center"></Label> <!-- Form layout --> <VerticalStackLayout Grid.Row="3" Grid.ColumnSpan="2"> <!-- Account Type Row --> <HorizontalStackLayout Padding="0,10,0,10" HorizontalOptions="Fill"> <Label Text="Account Type" VerticalTextAlignment="Center" WidthRequest="100"></Label> <Entry Text="Account Type" HorizontalOptions="FillAndExpand"></Entry> </HorizontalStackLayout> <!-- Expense Type Row --> <HorizontalStackLayout HorizontalOptions="Fill"> <Label Text="Expense Type" VerticalTextAlignment="Center" WidthRequest="100"></Label> <Entry Text="Expense Type" HorizontalOptions="FillAndExpand"></Entry> </HorizontalStackLayout> <!-- Amount Row --> <HorizontalStackLayout HorizontalOptions="Fill"> <Label Text="Tota" VerticalTextAlignment="Center" WidthRequest="100"></Label> <Entry Text="" HorizontalOptions="FillAndExpand"></Entry> </HorizontalStackLayout> <!-- Description Row --> <HorizontalStackLayout HorizontalOptions="Fill"> <Label Text="Description" VerticalTextAlignment="Center" WidthRequest="100"></Label> <Entry Text="Descr" HorizontalOptions="FillAndExpand"></Entry> </HorizontalStackLayout> <!-- Submit Button --> <Button Text="Submit" HorizontalOptions="Fill"></Button> </VerticalStackLayout> <ListView> </ListView> </Grid> StackLayout中的组件仅占用其所需的空间。 您可以尝试使用 Grid 来代替。 <!-- Account Type Row --> <Grid Padding="0,10,0,10" ColumnDefinitions="Auto, *"> <Label Grid.Column="0" Text="Account Type" VerticalTextAlignment="Center" WidthRequest="100"></Label> <Entry Grid.Column="1" Text="Account Type"></Entry> </Grid> 附注不要再使用FillAndExpand了。它已被弃用。 Fill 是默认值,因此无需指定。

回答 1 投票 0

当鼠标悬停在元素上时调整 ColumnDefinition 的大小

当用户的光标位于 Border 元素上时,我试图使网格列占据大部分窗口。 鼠标位于右侧边框的示例 但是,我无法获取 ColumnDefintion.W...

回答 1 投票 0

弹出窗口的 XAML 模板

我是 C# Maui 的新手,并陷入了一项简单的任务,但我找不到任何如何执行该任务的信息。 我的目标是创建一个 XAML 模板,然后我可以用其他 XAML 内容填充该模板。 我的想法是...

回答 1 投票 0

WinUI3:如何在视图模型中引用控件?

我正在使用 TemplateStudio 来构建我的项目 在视图 > TestPage.xaml 中 我正在使用 TemplateStudio 来构建我的项目 在 视图 > TestPage.xaml <Page x:Class="FluentQQ.Views.TestPage" ...> <Grid> <TextBox x:Name="MessageInput" /> </Grid> </Page> 并在视图> TestPage.xaml.cs using FluentQQ.ViewModels; using Microsoft.UI.Xaml.Controls; namespace FluentQQ.Views; public sealed partial class TestPage : Page { public TestViewModel ViewModel { get; } public TestPage() { ViewModel = App.GetService<TestViewModel>(); InitializeComponent(); } } 然后,我尝试获取TextBox“MessageInput”的内容 因此,在 ViewModels > TestViewModel.cs 中,我使用 MessageInput.Text 但是没用 CS0103 The name 'MessageInput' does not exist in the current context 我知道这个问题可能很简单,但请原谅我只是初学者 如错误消息所示,MessageInput控件不存在于*TestPageViewModel中。对于 MVVM,通常您应该使用绑定从视图中获取数据。 只是为了确保我们在同一页面上,在这种情况下: TestPage.xaml 是 View TestPage.xaml.cs 是 代码隐藏 TestPageViewModel.cs 是 ViewModel 安装 CommunityToolkit.Mvvm nuget 包。如果您使用 MVVM 模式,这将使您的生活更轻松。 在您的 ViewModel 中,TestPageViewModel: // This class needs to be "partial" // for the "CommunityToolkit.Mvvm" source generators. public partial class TestPageViewModel : ObservableObject { // The source generators will create // an UI interactable "SomeText" property for you. [ObservableProperty] private string someText; } 在您的代码隐藏中,TestPage.xaml.cs: public sealed partial class TestPage : Page { public TestViewModel ViewModel { get; } public TestPage() { ViewModel = App.GetService<TestViewModel>(); InitializeComponent(); } } 然后在您看来,TestPage.xaml: <TextBox x:Name="MessageInput" Text="{x:Bind ViewModel.SomeText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" /> 仅此而已。每次您更改 TextBox 中的文本时,SomeText 都会更新。 顺便说一句,您可以直接从代码隐藏访问TextBox。只要确保使用 x:Name 来命名即可。 TestPage.xaml.cs MessageInput.Text = "some text";

回答 1 投票 0

将按钮对象从xaml发送到类(使用MVVM模型)

我想更改该代码以与 MVVM 兼容。 下面的代码带有代码隐藏 我想更改该代码以与 MVVM 兼容。 下面的代码带有代码隐藏 <Button x:Name="sevenBtn" Grid.Row="2" Grid.Column="0" Click="NumberBtn_Click" Content="7" Style="{StaticResource numberButtonsStyle}" /> private void NumberBtn_Click(object sender, RoutedEventArgs e) { int selectedValue = int.Parse((sender as Button).Content.ToString()); } 我使用 CommunityToolkit.Mvvm、Microsoft.Xaml.Behavior.Wpf 有人可以帮助我吗? 谢谢 在 MVVM 中发送对象。 这是一个简单的示例代码: 左侧:如何实现数字按钮。 右侧:如何使用CommunityToolkit.Mvvm的另一个示例代码。 MainWindowViewModel.cs using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; namespace WpfAppTests; public partial class MainWindowViewModel : ObservableObject { [RelayCommand] private void UpdateNumber(string numberString) { if (int.TryParse(numberString, out int number) is true) { Number = number; } } [ObservableProperty] private int number; [ObservableProperty] private string someText = string.Empty; [RelayCommand] private void UpdateText(string text) { SomeText = text; } } MainWindow.xaml <Window x:Class="WpfAppTests.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:WpfAppTests" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Title="MainWindow" Width="800" Height="450" mc:Ignorable="d"> <Window.DataContext> <local:MainWindowViewModel /> </Window.DataContext> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <!-- Your number button sample code. --> <StackPanel Grid.Column="0"> <Button Command="{Binding UpdateNumberCommand}" CommandParameter="{Binding Content, RelativeSource={RelativeSource Self}}" Content="5" /> <TextBlock Text="{Binding Number}" /> </StackPanel> <!-- Simple sample code of how to use the CommunitToolkit.Mvvm. --> <StackPanel Grid.Column="1"> <TextBox x:Name="InputTextBox" /> <Button Command="{Binding UpdateTextCommand}" CommandParameter="{Binding ElementName=InputTextBox, Path=Text}" Content="Update text" /> <TextBlock Text="{Binding SomeText}" /> </StackPanel> </Grid> </Window>

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.